Einführung

PureBasic ist eine neue "Hochsprachen" Programmiersprache basierend auf den bekannten BASIC-Regeln. Sie ist vergleichbar mit jedem anderen BASIC-Compiler, den Sie vielleicht schon benutzt haben, egal ob für den Amiga oder den PC. Das Erlernen von PureBasic ist sehr leicht! PureBasic ist für Anfänger genauso wie für Experten geschaffen worden. Die Übersetzungsgeschwindigkeit ist wirklich schnell. Diese Software wurde für das Windows-Operating-System entwickelt. Wir haben eine Menge Anstrengungen in ihre Realisierung gesetzt, um eine schnelle, zuverlässige und systemfreundliche Sprache zu produzieren.

Die Syntax ist einfach, aber die Möglichkeiten sind endlos, mit PureBasic's fortgeschrittenen Funktionen, wie Zeiger, Strukturen, Prozeduren, dynamisch verknüpfte Listen und vieles mehr. Für den erfahrenen Programmierer gibt es keine Probleme, Zugang zu irgendwelchen legalen OS-Strukturen oder API-Objekten zu bekommen.

PureBasic ist eine portable Sprache, welche zur Zeit auf den AmigaOS (680x0 und PowerPC) und Windows Computersystemen arbeitet. Dies bedeutet, dass derselbe Programmcode für beide Systeme nativ kompiliert werden kann und trotzdem die volle Power beider ausnutzt. Es gibt keine Flaschenhälse wie einen virtuellen Prozessor oder einen Code-Übersetzer; der generierte Code produziert ein optimiertes Executable, ungeachtet des OS, auf welchem es kompiliert wird. Die externen Bibliotheken sind vollständig in handoptimiertem Assembler, welcher sehr schnelle Befehle - oftmals schneller als die C/C++ Äquivalente - erzeugt, geschrieben.

Die bedeutendsten Features von PureBasic:

- 486, Pentium (Pro, II, III) Support
- Eingebaute Arrays, dynamisch verknüpfte Listen, komplexe Strukturen, Zeiger und Variablen-Definitionen
- Unterstützte Typen: Byte (8 Bit), Word (16 Bit), Long (32 Bit), Float (32 Bit) und auch benutzerdefinierte Typen (Strukturen)
- Eingebaute String-Typen (Charaktere)
- Konstanten, binäre und hexadezimale Zahlen werden unterstützt
- Verkürzung von Ausdrücken (Zusammenstellen von Konstanten und numerischen Zahlen
- Standard Arithmetik-Unterstützung unter Beachtung von Vorzeichen und Klammern: +, -, /, *, and, or, <<, >>
- Sehr schnelle Kompilierung (über 300.000 Zeilen/Minute auf einem P200)
- Unterstützung von Prozeduren für strukturiertes Programmieren mit lokalen und globalen Variablen
- Alle Standard BASIC Schlüsselworte: If-Else-EndIf, Repeat-Until, etc.
- Unterstützung von externen Bibliotheken, um Objekte wie BMP-Bilder, Fenster, Gadgets, DirectX ect. zu manipulieren
- Externe Bibliotheken sind vollständig in handoptimiertem Assembler geschrieben, um maximale Geschwindigkeit und Kompaktheit zu bieten
- Die Win32 API Funktionen werden vollständig unterstützt, so als wären es BASIC Schlüsselworte
- Inline-Assembler
- Vorkompilierte Strukturen mit Konstanten-Dateien für extra-schnelle Kompilierung
- Konfigurierbarer CLI-Compiler
- Sehr hohe Leistungsfähigkeit, ausführliche Stichwörter, Online-Hilfe
- Systemfreundlich, leicht zu installieren und zu benutzen


 Rechtliches

Dieses Programm wird bereitgestellt "WIE ES IST". Fantaisie Software ist NICHT verantwortlich für irgendwelche Schäden, die PureBasic zugeschrieben werden. Sie wurden gewarnt, dass Sie PureBasic auf Ihr eigenes Risiko benutzen. Garantien werden von Fantaisie Software oder einem Vertreter weder gegeben noch angedeutet.

Die DEMO-Version dieses Programm kann frei verteilt werden, solange alle Inhalte des Original-Archivs intakt bleiben. Sie dürfen die Inhalte des Original-Archivs nicht modifizieren oder verändern, ohne eine schriftliche Erlaubnis von Fantaisie Software zu haben. Falls Sie eine Cover-Disk erstellen möchten, MUSS jedes Magazin nach Erlaubnis fragen, bevor eine Demo-Version auf irgendwelchen Medien verbreitet wird.

Fantaisie Software behält sich alle Rechte an diesem Programm und allen Original-Archiven und deren Inhalten vor.


Systemvoraussetzungen

PureBasic läuft auf jedem auf Windows-System (das bedeutet: Windows 95/98/Me, Windows NT/2000 und Windows XP). Falls irgendweIche Probleme auftreten, informieren Sie uns bitte.


Installation

Zum Installieren von PureBasic ziehen Sie einfach die 'PureBasic' Schublade dorthin, wo auch immer Sie möchten. Es sind keine weiteren Vorkehrungen notwendig. Um PureBasic zu starten, klicken Sie einfach auf das Programm-Icon. Um den Shell-basierten Compiler zu benutzen, öffnen Sie ein standard MsDos-Fenster und schauen in den Unterordner Compilers\ nach der Anwendung PBCompiler.


2DDrawing

PureBasic - 2DDrawing

Einleitung

Das 2D Zeichnen beinhaltet alle 2D Zeichenfunktionen, die Sie in einem sichtbaren Bereich ausführen können. Das Zeichnen einer Linie, einer Box, eines Kreises oder einfach eines Textes gehört zu den 2D Zeichenoperationen.

Befehlsübersicht

BackColor
Box
Circle
DrawImage
DrawText
DrawingFont
DrawingMode
Ellipse
FrontColor
Line
Locate
Plot
Point
StartDrawing
StopDrawing
TextLength

Beispiel

2DDrawing.pb

Unterstützte OS

Windows, AmigaOS

Referenz-Handbuch - Inhaltsverzeichnis


BackColor()

Syntax

BackColor(Rot, Grün, Blau)

Beschreibung

Definiert die standardmäßige Hintergrundfarbe für alle Grafikfunktionen und die Textanzeige. Jede Farbe wird mit ihren Rot-, Grün- und Blau-Anteilen unterstützt. Wie immer liegen diese Werte jeweils zwischen 0 und 255, was bis zu 16,7 Millionen möglicher Farben ergibt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Box()

Syntax

Box(x, y, Breite, Höhe)

Beschreibung

Zeichnet einen ausgefüllten Kasten in der angegebenen Größe in den aktuellen Ausgabekanal. Dieser Befehl benutzt die standardmäßige Zeichenfarbe, welche mit FrontColour() festgelegt wird. Der aktuelle Ausgabekanal wird mittels StartDrawing() festgelegt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Circle()

Syntax

Circle(x, y, Radius)

Beschreibung

Zeichnet im aktuellen Ausgabekanal einen ausgefüllten Kreis an der Position x,y mit der Größe des angegebenen Radius. Dieser Befehl benutzt die standardmäßige Zeichenfarbe, welche mit FrontColour() festgelegt wird. Der aktuelle Ausgabekanal wird mittels StartDrawing() festgelegt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


DrawImage()

Syntax

DrawImage(ImageID, x, y)

Beschreibung

Zeichnet das angegebene Bild 'ImageID' an der angegebenen Position. Die ImageID kann einfach ermittelt werden über den Befehl UseImage() aus der Image Library.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


DrawText()

Syntax

DrawText(Text$)

Beschreibung

Stellt den angegebenen String auf dem aktuellen Ausgabekanal dar. Der Text kann beliebig mittels Locate() positioniert werden. DrawingMode() kann benutzt werden, um einen transparenten Hintergrund einzustellen. Dieser Befehl benutzt die mittels FrontColour() festgelegte Standard-Farbe. Der aktuelle Ausgabekanal wird mittels StartDrawing() definiert.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


DrawingFont()

Syntax

DrawingFont(FontID())

Beschreibung

Ändert den aktuellen Zeichensatz auf die angegebene FontID. Alle neuen Texte werden mit dem neu eingestellten Zeichensatz dargestellt. Die FontID erhalten Sie einfach mit dem FontID() Befehl aus der Font Bibliothek. Der Zeichensatz muss vor dieser Funktion mittels LoadFont() geladen werden.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


DrawingMode()

Syntax

DrawingMode(Modus)

Beschreibung

Ändert den Zeichenmodus für die Text- und die Grafikausgabe.

Modus kann eine Kombination der folgenden Variablen sein:

0: Standardmodus; Text wird mit Hintergrund dargestellt, Grafikformen (Shapes) werden ausgefüllt
1: Setzt den Text-Hintergrund auf transparent
2: Schaltet den XOR-Modus ein (alle Grafiken werden nach den XOR-Regeln mit dem Hintergrund "vermischt")
4: Schaltet den Outline-Modus ein. Kreise, Boxen ect... werden nur mit ihren Rändern gezeichnet und nicht mehr ausgefüllt.

Um mehrere Modi gleichzeitig zu verwenden, müssen Sie den '|' (OR) Operator benutzen. Ein Beispiel für die Verwendung von XOR- und Outline-Modus bei Grafiken (Shapes):

DrawingMode(2 | 4)

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Ellipse()

Syntax

Ellipse(x, y, RadiusX, RadiusY)

Beschreibung

Zeichnet eine ausgefüllte Ellipse an der Position x,y mit der Größe von RadiusX und RadiusY. Dieser Befehl benutzt die mittels FrontColour() festgelegte Standard-Farbe. Der aktuelle Ausgabekanal wird mittels StartDrawing() festgelegt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


FrontColor()

Syntax

FrontColor(Rot, Grün, Blau)

Beschreibung

Definiert die standardmäßige Zeichenfarbe für alle Grafikfunktionen und die Textanzeige. Jede Farbe wird mit ihren Rot-, Grün- und Blau-Anteilen unterstützt. Wie immer liegen diese Werte jeweils zwischen 0 und 255, was bis zu 16,7 Millionen möglicher Farben ergibt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Line()

Syntax

Line(x, y, Breite, Höhe)

Beschreibung

Zeichnet eine Linie mit den angegebenen Dimensionen auf dem aktuellen Ausgabekanal. Dieser Befehl benutzt die mittels FrontColour() festgelegte Standard-Farbe. Der aktuelle Ausgabekanal wird mittels StartDrawing() festgelegt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Locate()

Syntax

Locate(x, y)

Beschreibung

Platziert den Text-Cursor an der angegebenen Position. Dieser Befehl ist nur nützlich in Verbindung mit einem nachfolgenden DrawText().

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Plot()

Syntax

Plot(x, y)

Beschreibung

Zeichnet einen Punkt an den angegebenen Koordinaten auf dem aktuellen Ausgabekanal. Dieser Befehl benutzt die mittels FrontColour() festgelegte Standard-Farbe. Der aktuelle Ausgabekanal wird mittels StartDrawing() festgelegt.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


Point()

Syntax

Farbe = Point(x, y)

Beschreibung

Ermittelt die im aktuellen Ausgabekanal an der Position (x, y) benutzte Farbe. Der zurückgegebene Farbwert ist ein 24 Bit - Wert, der kombiniert die Rot-, Grün- und Blau-Werte der Farbe enthält.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


StartDrawing()

Syntax

StartDrawing(OutputID)

Beschreibung

Ändert die aktuelle Zeichenausgabe auf die angegebene Ausgabe. Nach dieser Einstellung werden alle Zeichenbefehle auf diesem Ausgabekanal gerendert. Nachdem alle Zeichenoperationen abgeschlossen wurden, muss StopDrawing() aufgerufen werden.

Die OutputID kann mit den folgenden Befehlen ermittelt werden:

WindowOutput(): Grafiken werden direkt auf dem Fenster gerendert.
ScreenOutput(): Grafiken werden direkt auf dem Bildschirm gerendert (für Spiele).
ImageOutput(): Grafiken werden direkt auf den Bilddaten gerendert ((siehe CreateImage()).
SpriteOutput(): Grafiken werden direkt auf das Sprite gerendert.
PrinterOutput(): Grafiken werden direkt auf dem Drucker ausgegeben.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


StopDrawing()

Syntax

StopDrawing()

Beschreibung

Sobald alle benötigten Grafik-Operationen durchgeführt wurden, muss dieser Befehl aufgerufen werden, um anderen laufenden Applikationen wieder das Darstellen eigener Grafiken zu ermöglichen. Eine typische Sequenz von Zeichenbefehlen sieht wie folgt aus:
  StartDrawing(WindowOutput())
  Box(10,10,20,20)
  Line(30,50,100,100)
  ....
  StopDrawing()

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


TextLength()

Syntax

Length = TextLength(Text$)

Beschreibung

Ermittelt die Länge (in Pixel) des angegebenen Strings, der auf dem aktuellen Ausgabekanal mittels des aktuellen Zeichensatzes dargestellt wird. Diese Funktion ist sehr nützlich, um die tatsächliche Länge eines mit einem nicht-proportionalen Zeichensatz dargestellten Strings zu ermitteln.

Unterstützte OS

Windows, AmigaOS

2DDrawing - Inhaltsverzeichnis


CDAudio

PureBasic - CDAudio

Einleitung

Das CD-Audio Format ist eine gute Möglichkeit, um sehr qualitative Musik während eines Spiels oder einer Applikation abzuspielen, die eine Menge Systemressourcen benötigt. Diese Library bietet Zugriff auf alle notwendigen Befehle, die für einfaches Abspielen von CD-Audio in PureBasic Programmen benötigt werden.

Befehlsübersicht

CDAudioLength
CDAudioName
CDAudioStatus
CDAudioTrackLength
CDAudioTrackSeconds
CDAudioTracks
EjectCDAudio
InitCDAudio
PauseCDAudio
PlayCDAudio
ResumeCDAudio
StopCDAudio
UseCDAudio

Beispiel

CDAudio.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CDAudioLength()

Syntax

Result = CDAudioLength()

Beschreibung

Gibt die komplette Länge einer Audio-CD in Sekunden zurück.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


CDAudioName()

Syntax

Result = CDAudioName()

Beschreibung

Gibt den systemabhängigen Namen des Laufwerks zurück, in dem sich die aktuelle Audio-CD befindet. Zum Beispiel wird auf dem Windows-System "D:\" zurückgegeben, wenn das Audio-CD Laufwerk dem System unter dem Buchstaben "D:\" zugeordnet ist.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


CDAudioStatus()

Syntax

Result = CDAudioStatus()

Beschreibung

Gibt den aktuellen Status des benutzten Audio-CD Laufwerks zurück. Der Rückgabewert kann folgende Werte annehmen:

-1: CD-Laufwerk nicht fertig (leer oder geöffnet)
0: CD-Laufwerk angehalten (aber die CD ist eingelegt und erkannt)
>0: Nummer des Audio-Tracks, der gerade abgespielt wird.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


CDAudioTrackLength()

Syntax

Result = CDAudioTrackLength(TrackNummer)

Beschreibung

Gibt die Länge des angegebenen Tracks in Sekunden zurück.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


CDAudioTrackSeconds()

Syntax

Result = CDAudioTrackSeconds()

Beschreibung

Gibt die Anzahl vergangener Sekunden zurück, seitdem das Abspielen des aktuellen Tracks begonnen hat.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


CDAudioTracks()

Syntax

Result = CDAudioTracks()

Beschreibung

Gibt die Gesamtzahl der Tracks auf der CD zurück, die zum Abspielen verfügbar sind.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


EjectCDAudio()

Syntax

EjectCDAudio(Status)

Beschreibung

Öffnet oder schließt das aktuelle CD-Laufwerk. Ist Status = 1, ist das CD-Laufwerk geöffnet, andernfalls wird es geschlossen.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


InitCDAudio()

Syntax

Result = InitCDAudio()

Beschreibung

Versucht die für die Benutzung der CD-Audio Befehle benötigten Ressourcen zu initialisieren. Dieser Befehl muss vor allen anderen CD-Audio Befehlen aufgerufen werden. Ist 'Result' gleich 0, ist die Initialisierung fehlgeschlagen oder es sind keine CD-Laufwerke verfügbar. Andernfalls beinhaltet 'Result' die Anzahl im System verfügbarer CD-Laufwerke.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


PauseCDAudio()

Syntax

PauseCDAudio()

Beschreibung

Hält ("pausiert") das Abspielen der Audio-CD an. Das Abspielen kann mittels ResumeCDAudio()fortgesetzt werden.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


PlayCDAudio()

Syntax

PlayCDAudio(StartTrack, EndTrack)

Beschreibung

Beginnt das Abspielen der Audio-CD beim Track 'StartTrack' und beendet es mit dem Ende des Tracks 'EndTrack'. Der erste Track ist mit 1 nummeriert.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


ResumeCDAudio()

Syntax

ResumeCDAudio()

Beschreibung

Setzt das Abspielen der Audio-CD fort, welche vorher mit dem Befehl PauseCDAudio()angehalten wurde.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


StopCDAudio()

Syntax

StopCDAudio()

Beschreibung

(Endgültiges) Stoppen der laufenden Audio-CD.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


UseCDAudio()

Syntax

UseCDAudio(CDAudioDrive)

Beschreibung

Da der Befehl InitCDAudio() erlaubt, die Anzahl der im System verfügbaren Audio-CD Laufwerke zu ermitteln, wird UseCDAudio() benutzt, um das aktuelle CD-Laufwerk zu wechseln. So ist das gleichzeitige Abspielen mehrerer CD's möglich.

Unterstützte OS

Windows, AmigaOS, Linux

CDAudio - Inhaltsverzeichnis


Clipboard

PureBasic - Clipboard

Einleitung

Das Clipboard (die "Zwischenablage") ist der Standard-Weg, um Informationen und Daten zwischen gerade auf dem OS laufenden Applikationen auszutauschen. Zum Beispiel wird ein Text beim Ausschneiden im Text-Editor ins Clipboard kopiert und kann später von jedem anderen Text-Editor wieder aufgerufen und eingefügt werden. PureBasic ermöglicht auf einfache Art und Weise das Kopieren und Empfangen von jeder Art Daten über das Standard-Clipboard.

Befehlsübersicht

ClearClipboard
GetClipboardData
GetClipboardText
SetClipboardData
SetClipboardText

Beispiel

Clipboard.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ClearClipboard()

Syntax

ClearClipboard()

Beschreibung

Löscht das Clipboard. Das bedeutet, dass alle vorher kopierten Daten restlos gelöscht werden und nicht mehr verfügbar sind.

Unterstützte OS

Windows, AmigaOS, Linux

Clipboard - Inhaltsverzeichnis


GetClipboardData()

Syntax

Data = GetClipboardData(Datentyp)

Beschreibung

Gibt eine Kopie der gerade im Clipboard befindlichen Daten zurück.

Zur Zeit wird nur ein Datentyp unterstützt:

#PB_ClipboardImage: welches die ImageID() eines zuvor kopierten Bildes zurückgibt.

Unterstützte OS

Windows, AmigaOS, Linux

Clipboard - Inhaltsverzeichnis


GetClipboardText()

Syntax

Text$ = GetClipboardText()

Beschreibung

Gibt den gerade im Clipboard befindlichen Text$ zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Clipboard - Inhaltsverzeichnis


SetClipboardData()

Syntax

SetClipboardData(Datentyp, DataID)

Beschreibung

Übermittelt Daten an das Clipboard. Die DataID muss eine gültige Objekt-ID sein.

Zur Zeit wird nur ein Datentyp unterstützt:

#PB_ClipboardImage: welches das angegebene Bild in das Clipboard kopiert. Um eine ImageID zu erhalten, benutzen Sie einfach die ImageID() Funktion.

Unterstützte OS

Windows, AmigaOS, Linux

Clipboard - Inhaltsverzeichnis


SetClipboardText()

Syntax

SetClipboardText(Text$)

Beschreibung

Kopiert einen Text$ in das Clipboard. Enthält das Clipboard bereits einen Text, wird dieser überschrieben.

Unterstützte OS

Windows, AmigaOS, Linux

Clipboard - Inhaltsverzeichnis


Console

PureBasic - Console

Einleitung

Diese Library ermöglicht das Schreiben von Applikationen im Console-Modus. Dieser wird benutzt, um kleine Programme zu erstellen, die kein User-Interface benötigen oder in einem Skript (Befehlszeilen) benutzt werden sollen. Diese Befehle helfen auch wirklich dem Programmierer beim Debuggen eines Programms, indem einige Informationen auf der Konsole ausgegeben werden können, ohne den Programmablauf anzuhalten.

Befehlsübersicht

ClearConsole
CloseConsole
ConsoleColor
ConsoleCursor
ConsoleLocate
ConsoleTitle
Inkey
Input
OpenConsole
Print
PrintN

Beispiel

Console.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


ClearConsole()

Syntax

ClearConsole()

Beschreibung

Löscht den gesamten Konsolen-Inhalt. Die Hintergrundfarbe wird mittels ConsoleColor() festgelegt.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


CloseConsole()

Syntax

Result = CloseConsole()

Beschreibung

Schließt die zuvor mittels OpenConsole() geöffnete Konsole. Eine mittels OpenDefaultConsole() geöffnete Konsole sollte niemals geschlossen werden. Sobald eine Konsole geschlossen wurde, können keine Funktionen aus dieser Library mehr benutzt werden. Ist der Rückgabewert gleich 0, ist der vorherige OpenConsole() Befehl fehlgeschlagen.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


ConsoleColor()

Syntax

Result = ConsoleColor(Zeichenfarbe, Hintergrundfarbe)

Beschreibung

Ändert die Farben der Textanzeige. Die Farbwerte reichen von 0 bis 15, welches die im Konsolen-Modus verfügbaren 16 Farben sind.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


ConsoleCursor()

Syntax

Resultat = ConsoleCursor(Höhe)

Beschreibung

Ändert die Cursor-Anzeige. Ist die Höhe gleich 0, ist der Cursor unsichtbar. Sonst kann 'Höhe' einen Wert zwischen 1 und 10 annehmen.

Zur Zeit sind (nur) 3 Werte verfügbar:

1 = Cursor unterstrichen
5 = Cursor mittlere Höhe
10 = Cursor volle Höhe

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


ConsoleLocate()

Syntax

Resultat = ConsoleLocate(x, y)

Beschreibung

Bewegt den Cursor an die angegebene Position, in Zeichen.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


ConsoleTitle()

Syntax

ConsoleTitle(Titel$)

Beschreibung

Ändert den Konsolentitel auf den neu angegebenen.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


Inkey()

Syntax

String$ = Inkey()

Beschreibung

Gibt einen "2-Zeichen"-String zurück, wenn eine Taste während dem Aufruf von Inkey() gedrückt wurde. Der Programmablauf wird dabei nicht unterbrochen. Ist das Ergebnis 'String$' nicht leer, beinhaltet es zwei Zeichen: das linke Zeichen ist der ASCII-Wert der gedrückten Taste, und das rechte Zeichen beinhaltet die zugehörige Nummer. Dies ist nützlich für nicht-alphabetische Tasten (Funktionstasten, Cursorpfeile, etc...).

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


Input()

Syntax

String$ = Input()

Beschreibung

Ermöglicht eine ganze Zeichenkette zu erfassen. Dieser Befehl hält die Programmausführung an und wartet bis der Benutzer die Return-Taste drückt. Die Eingabezeile (Zeichenkette) kann nicht länger als die Konsolen-Breite sein.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


OpenConsole()

Syntax

Result = OpenConsole()

Beschreibung

Öffnet ein Konsolen-Fenster. Diese Funktion muss vor den anderen Befehlen aus dieser Library aufgerufen werden. Nur eine Konsole kann zur gleichen Zeit in einem PureBasic Programm geöffnet werden. Ist 'Result' gleich 0, ist das Öffnen fehlgeschlagen und alle weiteren Aufrufe von Console-Befehlen müssen deaktiviert werden. Die Konsole kann mittels dem CloseConsole()Befehl geschlossen werden.

Unter Microsoft Windows gibt es zwei verschiedene "Executable" Formate (von ausführbaren Programmen): Win32 und Console. Wenn Sie eine Standard-Konsolen-Applikation, wie 'Dir', 'Del' etc... erstellen möchten, müssen Sie das Executable im Format "Console" (Compiler-Optionen Menü im PureBasic-Editor) erstellen.

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


Print()

Syntax

Result = Print(Text$)

Beschreibung

Zeigt den 'Text$' in der Konsole an. Die Text$-Länge sollte nicht über 250 Zeichen liegen, andernfalls wird das Ende des Strings abgeschnitten. Um die aktuelle Cursor-Position zu ändern, benutzen Sie den Befehl ConsoleLocate().

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


PrintN()

Syntax

Result = PrintN(Text$)

Beschreibung

Zeigt den 'Text$' in der Konsole an und fügt einen Zeilenumbruch hinzu. Die Text$-Länge sollte nicht über 250 Zeichen liegen, andernfalls wird das Ende des Strings abgeschnitten. Um die aktuelle Cursor-Position zu ändern, benutzen Sie den Befehl ConsoleLocate().

Unterstützte OS

Windows

Console - Inhaltsverzeichnis


Database

PureBasic - Database

Einleitung

Die Database Library ist eine einfache Sammlung von Befehlen, um auf jeden Datenbank-Typ (Oracle, MySQL, Access, etc...) zuzugreifen, der die bekannte ODBC API benutzt. Die Library basiert auf SQL-Abfragen, um Daten aus einer Datenbank zu erhalten oder hinein zu schreiben. Deshalb kann es interessant für Sie sein, einen kurzen Blick in ein Dokument mit einer SQL-Beschreibung zu schauen, falls dies nötig sein sollte.

Befehlsübersicht

CloseDatabase
DatabaseColumnName
DatabaseColumnType
DatabaseColumns
DatabaseDriverDescription
DatabaseDriverName
DatabaseQuery
ExamineDatabaseDrivers
FirstDatabaseRow
GetDatabaseFloat
GetDatabaseLong
GetDatabaseString
InitDatabase
NextDatabaseDriver
NextDatabaseRow
OpenDatabase
OpenDatabaseRequester
PreviousDatabaseRow
UseDatabase

Beispiel

Database.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


CloseDatabase()

Syntax

CloseDatabase(#Database)

Beschreibung

Schließt die angegebene Datenbank '#Database' (und ggf. offene Verbindungen oder Transaktionen). Damit sind keine weiteren Operationen in dieser Datenbank erlaubt.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


DatabaseColumnName()

Syntax

Text$ = DatabaseColumnName(Spalte)

Beschreibung

Gibt den Namen der angegebenen Spalte (Feld) in der aktuellen Datenbank zurück.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


DatabaseColumnType()

Syntax

Result = DatabaseColumnType(Spalte)

Beschreibung

Gibt den Typ der angegebenen Spalte (Feld) in der aktuellen Datenbank zurück. Ist das Ergebnis gleich 0, ist der Typ nicht definiert oder der Befehl ist fehlgeschlagen (unmöglich den Typ zu ermitteln).

Typen-Werte können sein:

1: Nummerisches Format: Long (.l) unter PureBasic
2: String-Format: String (.s) unter PureBasic
3: Nummerisches Fließkomma-Format: Float (.f) unter PureBasic

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


DatabaseColumns()

Syntax

Result = DatabaseColumns()

Beschreibung

Ermittelt die Anzahl an Spalten (Felder) in der gerade geöffneten Datenbank.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


DatabaseDriverDescription()

Syntax

Text$ = DatabaseDriverDescription()

Beschreibung

Gibt die Beschreibung des aktuellen Datenbank-Treibers zurück. Die Treiber werden aufgelistet mit den ExamineDatabaseDrivers() und NextDatabaseDriver()Befehlen.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


DatabaseDriverName()

Syntax

Text$ = DatabaseDriverName()

Beschreibung

Gibt den Namen des aktuellen Datenbank-Treibers zurück. Die Treiber werden aufgelistet mit den ExamineDatabaseDrivers() und NextDatabaseDriver()Befehlen.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


DatabaseQuery()

Syntax

Result = DatabaseQuery(Request$)

Beschreibung

Führt die SQL-Abfrage 'Request$' in der aktuellen Datenbank aus. Ist das Ergebnis 'Result' gleich 0, konnte die Abfrage nicht korrekt ausgeführt werden (SQL-Fehler, falsch formatierte Abfrage etc...), andernfalls war die Abfrage erfolgreich und NextDatabaseRow() kann zur Auflistung der ermittelten Einträge benutzt werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


ExamineDatabaseDrivers()

Syntax

Result = ExamineDatabaseDrivers()

Beschreibung

Untersucht die auf dem System verfügbaren installierten Datenbank-Treiber. Wenn ODBC nicht installiert ist oder keine Treiber vorhanden sind, wird 0 zurückgegeben. Sonst kann NextDatabaseDriver() zum Auflisten der Treiber benutzt werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


FirstDatabaseRow()

Syntax

Result = FirstDatabaseRow()

Beschreibung

Gibt eine Information über die ersten Datenbank-Zeile zurück. Ist das Ergebnis 'Result' gleich 0, dann ist keine (Datenbank-Zeile (kein Eintrag) verfügbar. Um auf die Informationen innerhalb des Eintrags (bzw. der Zeile) zuzugreifen, benutzen Sie GetDatabaseLong(), GetDatabaseFloat() und GetDatabaseString().

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


GetDatabaseFloat()

Syntax

Result.f = GetDatabaseFloat(Spalte)

Beschreibung

Gibt den Inhalt des angegebenen Feldes 'Spalte' als Fließkomma-Zahl (Float) zurück. Um den Typ eines Feldes zu ermitteln, kann DatabaseColumnType() benutzt werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


GetDatabaseLong()

Syntax

Result = GetDatabaseLong(Spalte)

Beschreibung

Gibt den Inhalt des angegebenen Feldes 'Spalte' als Standard-Zahl (Long) zurück. Um den Typ eines Feldes zu ermitteln, kann DatabaseColumnType() benutzt werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


GetDatabaseString()

Syntax

Text$ = GetDatabaseString(Spalte)

Beschreibung

Gibt den Inhalt des angegebenen Feldes 'Spalte' als String zurück. Um den Typ eines Feldes zu ermitteln, kann DatabaseColumnType() benutzt werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


InitDatabase()

Syntax

Result = InitDatabase()

Beschreibung

Initialisiert die Datenbank-Programmumgebung zur weiteren Benutzung. Es wird versucht, die ODBC Library zu laden und die benötigten Ressourcen zu reservieren. Ist das Ergebnis gleich 0, dann ist ODBC nicht verfügbar oder zu alt (ODBC 3.0 oder besser wird benötigt) und alle Datenbank Funktionsaufrufe müssen deaktiviert werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


NextDatabaseDriver()

Syntax

Result = NextDatabaseDriver()

Beschreibung

Ermittelt die Informationen über den nächsten verfügbaren Datenbank-Treiber. Ist das Ergebnis 'Result' gleich 0, dann sind keine weiteren Treiber verfügbar. Dieser Befehl muss nach ExamineDatabaseDriver() aufgerufen werden. Um die Treiber-Informationen auszuwerten, können DatabaseDriverName() und DatabaseDriverDescription() benutzt werden.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


NextDatabaseRow()

Syntax

Result = NextDatabaseRow()

Beschreibung

Ermittelt die Informationen über den nächsten Datenbank-Eintrag (Zeile). Ist das Ergebnis 'Result' gleich 0, dann sind keine weiteren Einträge mehr verfügbar (Ende der Tabelle). Um auf die Informationen innerhalb des Eintrags (bzw. der Zeile) zuzugreifen, benutzen Sie GetDatabaseLong(), GetDatabaseFloat() und GetDatabaseString().

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


OpenDatabase()

Syntax

Result = OpenDatabase(#Database, ODBCDatabaseName$, User$, Password$)

Beschreibung

Öffnet die angegebene ODBC Datenbank 'ODBCDatabaseName$' und legt diese als aktuelle Datenbank fest. Alle weiteren Operationen beziehen sich jetzt auf diese neu geöffnete Datenbank. Zum Ändern der aktuellen Datenbank benutzen Sie einfach den UseDatabase() Befehl. Ist das Ergebnis 'Result' gleich 0, wurde die Datenbank nicht gefunden oder Benutzer/Passwort (User$/Passwort$) sind falsch. Der Passwort$ kann ein Null-String sein, wenn kein Passwort benötigt wird. Zum Deklarieren einer ODBC-Datenbank lesen Sie das ODBC-Hilfedokument von Windows. Wenn zuvor eine andere Datenbank mit der selben #DataBase Nummer geöffnet war, wird diese automatisch geschlossen.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


OpenDatabaseRequester()

Syntax

Result = OpenDatabaseRequester(#Database)

Beschreibung

Öffnet den Standard Windows ODBC-Requester, um eine Datenbank zum Öffnen auszuwählen. Ist das Ergebnis 'Result' gleich 0, konnte die Datenbank nicht geöffnet werden, andernfalls wird sie zur aktuell geöffneten Datenbank. Alle weiteren Operationen beziehen sich jetzt auf diese neu geöffnete Datenbank. Zum Ändern der aktuellen Datenbank benutzen Sie einfach den UseDatabase() Befehl.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


PreviousDatabaseRow()

Syntax

Result = PreviousDatabaseRow()

Beschreibung

Ermittelt die Informationen über den vorherigen Datenbank-Eintrag (Zeile). Ist das Ergebnis 'Result' gleich 0, dann sind keine weiteren Einträge mehr verfügbar (Anfang der Tabelle). Um auf die Informationen innerhalb des Eintrags (bzw. der Zeile) zuzugreifen, benutzen Sie GetDatabaseLong(), GetDatabaseFloat() und GetDatabaseString().

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


UseDatabase()

Syntax

Result = UseDatabase(#Database)

Beschreibung

Ändert die aktuelle Datenbank auf die neu angegebene. Ist das Ergebnis 'Result' gleich 0, wurde die angegebene Datenbank nicht initialisiert.

Unterstützte OS

Windows

Database - Inhaltsverzeichnis


File

PureBasic - File

Einleitung

Die Dateien sind die gebräuchlichste Art des Speicherns auf heutigen Computern. Mit PureBasic verwalten Sie diese auf sehr einfachem und optimiertem Weg. Eine beliebige Anzahl Dateien kann gleichzeitig verwaltet werden. Diese Bibliothek benutzt gepufferte Funktionen, um die Schreib- und Lesegeschwindigkeit zu erhöhen.

Befehlsübersicht

CloseFile
CreateFile
Eof
FileSeek
Loc
Lof
OpenFile
ReadByte
ReadData
ReadFile
ReadLong
ReadMemory
ReadString
ReadWord
UseFile
WriteByte
WriteLong
WriteMemory
WriteString
WriteStringN
WriteWord

Beispiel

File.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CloseFile()

Syntax

CloseFile(#File)

Beschreibung

Schließt die angegebene Datei '#File', welche damit nicht weiter benutzt werden kann. Beim Schließen einer Datei wird der Buffer effektiv auf Disk abgespeichert. Hinweis: Am Programmende ist PureBasic "klug" genug, um alle offenen Dateien automatisch zu schließen. Deshalb müssen Sie dies nicht unbedingt selbst erledigen.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


CreateFile()

Syntax

Result = CreateFile(#File, DateiName$)

Beschreibung

Öffnet eine leere Datei. Existierte die angegebene Datei bereits, wird diese geöffnet und durch eine leere ersetzt! Seien Sie vorsichtig! Ergibt 'Result' nicht 0, konnte die Datei angelegt werden, andernfalls ist die Erstellung fehlgeschlagen. Dies muss immer getestet werden, da das Ausführen von Operationen auf nicht erstellte Dateien zu schlimmen Abstürzen führt.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


Eof()

Syntax

Result = Eof(#File)

Beschreibung

EOF steht für 'End Of File' (Ende der Datei). Die Funktion gibt einen Wert ungleich 0 zurück, wenn das Ende der angegebenen Datei '#File' erreicht wurde, andernfalls wird 0 zurückgegeben.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


FileSeek()

Syntax

FileSeek(NewPosition)

Beschreibung

Ändert den Lese/Schreib - Zeiger innerhalb der Datei auf die angegebene Position 'NewPosition'.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


Loc()

Syntax

Position = Loc()

Beschreibung

Gibt die aktuelle Zeiger-Position innerhalb der Datei zurück.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


Lof()

Syntax

Length = Lof()

Beschreibung

LOF steht für 'Length Of File' (Länge der Datei). Es gibt die Länge der aktuellen Datei zurück.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


OpenFile()

Syntax

Result = OpenFile(#File, DateiName$)

Beschreibung

Öffnet die angegebene Datei oder erstellt eine, falls noch keine existiert. Sie können nun Lese- und Schreibfunktionen in dieser Datei ausführen. Ist 'Result' nicht 0, wurde die Datei erfolgreich geöffnet, andernfalls konnte die Datei nicht geöffnet werden. Dies muss immer getestet werden, da das Ausführen von Operationen auf nicht erstellte Dateien zu schlimmen Abstürzen führt.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadByte()

Syntax

Number.b = ReadByte()

Beschreibung

Liest ein Byte aus der aktuell geöffneten Datei ein.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadData()

Syntax

ReadData(*MemoryBuffer, LengthToRead)

Beschreibung

Liest den Inhalt der aktuellen Datei in den angegebenen Speicherbereich.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadFile()

Syntax

Result = ReadFile(#File, DateiName$)

Beschreibung

Öffnet eine existierende Datei 'FileName$' ausschließlich für Lese-Operationen. Ist 'Result' nicht 0, wurde die Datei erfolgreich geöffnet, andernfalls konnte die Datei nicht geöffnet werden. Dies muss immer getestet werden, da das Ausführen von Operationen auf nicht erstellte Dateien zu schlimmen Abstürzen führt.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadLong()

Syntax

Number.l = ReadLong()

Beschreibung

Liest einen Long-Wert (4 Bytes) aus der aktuell geöffneten Datei ein.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadMemory()

Syntax

ReadMemory(*MemoryBuffer, LengthToRead)

Beschreibung

Liest den Inhalt der aktuellen Datei mit der angegebenen Länge 'LengthToRead' in den angegebenen Speicherbereich '*MemoryBuffer'.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadString()

Syntax

Text$ = ReadString()

Beschreibung

Liest einen String aus der aktuell geöffneten Datei ein.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


ReadWord()

Syntax

Number.w = ReadWord()

Beschreibung

Liest einen Word-Wert (2 Byte) aus der aktuell geöffneten Datei ein.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


UseFile()

Syntax

UseFile(#File)

Beschreibung

Ändert die aktuell zu benutzende Datei auf die angegebene Datei '#File'.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


WriteByte()

Syntax

WriteByte(Number.b)

Beschreibung

Schreibt einen Byte-Wert in die aktuelle Datei. Die Datei muss mit Schreib-Unterstützung geöffnet worden sein (d.h. nicht mit ReadFile()).

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


WriteLong()

Syntax

WriteLong(Number.w)

Beschreibung

Schreibt einen Long-Wert in die aktuelle Datei. Die Datei muss mit Schreib-Unterstützung geöffnet worden sein (d.h. nicht mit ReadFile()).

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


WriteMemory()

Syntax

WriteMemory(*MemoryBuffer, LengthToWrite)

Beschreibung

Schreibt den Inhalt des angegebenen Speicherbereichs '*MemoryBuffer' mit einer Länge von 'LengthToWrite' in die aktuelle Datei.

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


WriteString()

Syntax

WriteString(Text$)

Beschreibung

Schreibt einen String in die aktuelle Datei. Die Datei muss mit Schreib-Unterstützung geöffnet worden sein (d.h. nicht mit ReadFile()).

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


WriteStringN()

Syntax

WriteStringN(Text$)

Beschreibung

Schreibt einen String in die aktuelle Datei und fügt ein 'end of line' Zeichen (für Zeilenumbruch) hinzu. Die Datei muss mit Schreib-Unterstützung geöffnet worden sein (d.h. nicht mit ReadFile()).

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


WriteWord()

Syntax

WriteWord(Number.w)

Beschreibung

Schreibt einen Word-Wert in die aktuelle Datei. Die Datei muss mit Schreib-Unterstützung geöffnet worden sein (d.h. nicht mit ReadFile()).

Unterstützte OS

Windows, AmigaOS, Linux

File - Inhaltsverzeichnis


FileSystem

PureBasic - FileSystem

Einleitung

FileSystem ist ein Oberbegriff, der alle fortgeschrittenen Funktionen rund um die Dateien beinhaltet. Zum Beispiel ist es möglich, einen Verzeichnisinhalt einzulesen, ein neues Verzeichnis zu erstellen und vieles mehr...

Befehlsübersicht

CopyFile
CreateDirectory
DeleteFile
DirectoryEntryAttributes
DirectoryEntryName
DirectoryEntrySize
ExamineDirectory
FileSize
NextDirectoryEntry
Rename
UseDirectory

Beispiel

FileSystem.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CopyFile()

Syntax

Result = CopyFile(Ausgangsdatei$, Zieldatei$)

Beschreibung

Kopiert die Ausgangsdatei($) über die Zieldatei($). Warnung: Wenn die Datei bereits existiert, wird sie automatisch gelöscht. Ergibt 'Result' gleich 0, konnte die Datei nicht kopiert werden.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


CreateDirectory()

Syntax

Result = CreateDirectory(VerzeichnisName$)

Beschreibung

Erstellt ein neues Verzeichnis. Ergibt 'Result' gleich 0, konnte das Verzeichnis nicht erstellt werden.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


DeleteFile()

Syntax

Result = DeleteFile(DateiName$)

Beschreibung

Löscht die angegebene Datei. Ergibt 'Result' gleich 0, konnte die Datei nicht gelöscht werden.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


DirectoryEntryAttributes()

Syntax

Attribute = DirectoryEntryAttributes()

Beschreibung

Gibt die Attribute des aktuellen Eintrags im Verzeichnis zurück, das gerade mit den ExamineDirectory() und NextDirectoryEntry() Befehlen untersucht wird. Die Attribute sind eine Kombination der folgenden Werte:

#PB_FileSystem_Hidden: Datei ist versteckt
#PB_FileSystem_Archive: Datei wurde archiviert und seit dem letzten Mal nicht geändert
#PB_FileSystem_Compressed: Datei ist gepackt
#PB_FileSystem_Normal: Normale Attribute
#PB_FileSystem_ReadOnly: Datei ist im "Read-only" Modus (nur lesbar)
#PB_FileSystem_System: Datei ist eine Systemdatei

Um zu überprüfen, ob bei der untersuchten Datei ein Attribut gesetzt ist, benutzen Sie '&' (logisches AND) und die Attribut-Konstante:
  [...]

  FileAttributes = DirectoryEntryAttributes()
  If FileAttributes & #PB_FileSystem_Hidden
    Debug "Die Datei ist versteckt!"
  EndIf

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


DirectoryEntryName()

Syntax

FileName$ = DirectoryEntryName()

Beschreibung

Gibt den Namen des aktuellen Eintrags im mittels der Befehle ExamineDirectory() und NextDirectoryEntry() aufgelisteten Verzeichnis zurück.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


DirectoryEntrySize()

Syntax

Size = DirectoryEntrySize()

Beschreibung

Gibt die Größe des aktuellen Eintrags im mittels der Befehle ExamineDirectory() und NextDirectoryEntry() aufgelisteten Verzeichnis zurück.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


ExamineDirectory()

Syntax

Result = ExamineDirectory(#Directory, VerzeichnisName$, Pattern$)

Beschreibung

Beginnt die Prüfung des angegebenen Verzeichnisses zur weiteren Bearbeitung mittels der Befehle NextDirectoryEntry() und DirectoryEntryName(). Der 'Pattern$' gibt an, welche Dateien aufgelistet werden sollen. #Directory ist die numerische ID und kann mittels UseDirectory() zum Wechseln des Verzeichnisses benutzt werden. Zum Beispiel: "*.*" oder "" werden alle Dateien im Verzeichnis auflisten. "*.exe" wird nur .exe (ausführbare) Dateien auflisten. Ergibt 'Result' gleich 0, kann das Verzeichnis nicht untersucht werden.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


FileSize()

Syntax

Result = FileSize(DateiName$)

Beschreibung

Gibt die Größe der angegebenen Datei zurück. Wurde die Datei nicht gefunden, wird -1 zurückgegeben.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


NextDirectoryEntry()

Syntax

Result = NextDirectoryEntry()

Beschreibung

Dieser Befehl muss nach einem ExamineDirectory() aufgerufen werden. Er wird Schritt für Schritt durch das Verzeichnis gehen und dessen Inhalt auflisten. Der jeweilige Name des aktuellen Eintrags kann mittels dem DirectoryEntryName() Befehl ermittelt werden. 'Result' kann die folgenden Werte annehmen:

- 0: keine weiteren Einträge im Verzeichnis
- 1: dieser Eintrag ist eine Datei
- 2: dieser Eintrag ist ein Verzeichnis

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


Rename()

Syntax

Result = Rename(AlterDateiName$, NeuerDateiName$)

Beschreibung

Nennt die alte Datei in die neue Datei um. Ergibt 'Result' gleich 0, ist das Umbenennen fehlgeschlagen.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


UseDirectory()

Syntax

UseDirectory(#Directory)

Beschreibung

Ändert das aktuelle Verzeichnis auf das neu angegebene. Dieser Befehl ist nur zusammen mit dem ExamineDirectory() Befehl nützlich.

Unterstützte OS

Windows, AmigaOS, Linux

FileSystem - Inhaltsverzeichnis


Font

PureBasic - Font

Einleitung

Zeichensätze (Fonts) sind auf Computern weit verbreitet, da sie die einzige Möglichkeit darstellen, Text in verschiedenen Größen und Formen auszugeben.

Befehlsübersicht

CloseFont
FontID
LoadFont
UseFont

Beispiel

Font.pb

Unterstützte OS

Windows, AmigaOS

Referenz-Handbuch - Inhaltsverzeichnis


CloseFont()

Syntax

CloseFont(#Font)

Beschreibung

Schließt den angegebenen Zeichensatz, der zuvor mittels LoadFont() initialisiert wurde.

Unterstützte OS

Windows, AmigaOS

Font - Inhaltsverzeichnis


FontID()

Syntax

FontID.l = FontID()

Beschreibung

Gibt den System Font-Zeiger zurück.

Unterstützte OS

Windows, AmigaOS

Font - Inhaltsverzeichnis


LoadFont()

Syntax

FontID.l = LoadFont(#Font, Name$, Höhe)

Beschreibung

Versucht den angegebenen Zeichensatz (Name$, Höhe) zu öffnen. Ergibt die zurückgegebene FontID gleich 0, wurde der Zeichensatz nicht gefunden. Wenn zuvor ein anderer Font unter der gleichen #Font Nummer geladen war, wird dieser automatisch freigegeben.

Unterstützte OS

Windows, AmigaOS

Font - Inhaltsverzeichnis


UseFont()

Syntax

UseFont(#Font)

Beschreibung

Ändert den aktuellen Zeichensatz auf den angegebenen Zeichensatz '#Font'.

Unterstützte OS

Windows, AmigaOS

Font - Inhaltsverzeichnis


Gadget

PureBasic - Gadget

Einleitung

Die Gadgets in PureBasic stehen als allgemeiner Begriff für alle Oberflächen-Komponenten: Schalter, Häkchenboxen, Auswahlfenster, Schalttafeln,... Diese Library ist OS-unabhängig und verwendet die wirklichen OS Graphical User Interface (GUI) Komponenten.

Befehlsübersicht

ActivateGadget
AddGadgetColumn
AddGadgetItem
ButtonGadget
ButtonImageGadget
ChangeListIconGadgetDisplay
CheckBoxGadget
ClearGadgetItemList
ClosePanelGadget
CloseTreeGadgetNode
ComboBoxGadget
CountGadgetItems
CreateGadgetList
DisableGadget
Frame3DGadget
FreeGadget
GadgetHeight
GadgetID
GadgetToolTip
GadgetWidth
GadgetX
GadgetY
GetGadgetItemState
GetGadgetItemText
GetGadgetState
GetGadgetText
HideGadget
IPAddressGadget
ImageGadget
ListIconGadget
ListViewGadget
OpenTreeGadgetNode
OptionGadget
PanelGadget
ProgressBarGadget
RemoveGadgetItem
ResizeGadget
SetGadgetFont
SetGadgetItemState
SetGadgetItemText
SetGadgetState
SetGadgetText
StringGadget
TextGadget
TrackBarGadget
TreeGadget
UseGadgetList

Beispiel

Gadget.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ActivateGadget()

Syntax

ActivateGadget(#Gadget)

Beschreibung

Aktiviert (setzt den Fokus) auf das angegebene #Gadget. Dies wird hauptsächlich zusammen mit den ComboBox oder String Gadgettypen benutzt.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


AddGadgetColumn()

Syntax

AddGadgetColumn(#Gadget, Position, Titel$, Breite)

Beschreibung

Fügt eine Spalte zum angegebenen #Gadget hinzu. Der Gadget-Typ kann einer der folgenden sein:
- ListIconGadget()

Die Position definiert den Spaltenindex, wo der neue Eintrag eingefügt werden soll. 'Breite' gibt die ursprüngliche Breite der neuen Spalte an.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


AddGadgetItem()

Syntax

AddGadgetItem(#Gadget, Position, Text$ [, ImageID])

Beschreibung

Fügt einen Eintrag zum angegebenen #Gadget hinzu. Ein optionales Bild (ImageID()) kann bei Gadgets, die dies unterstützen (wie ListIconGadget()), angegeben werden. Der Gadgettyp kann einer der folgenden sein:

- ComboBoxGadget()
- PanelGadget()
- ListViewGadget()
- ListIconGadget(): unterstützt die ImageID.
- TreeGadget(): unterstützt die ImageID. Der Parameter 'Position' wird ignoriert.

Die 'Position' definiert den Eintrag-Index, wo der neue Eintrag eingefügt werden soll. Um diesen Eintrag am Ende der aktuellen Eintrag-Liste hinzuzufügen, benutzen Sie einen Wert von -1.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


ButtonGadget()

Syntax

ButtonGadget(#Gadget, x, y, Breite, Höhe, Text$)

Beschreibung

Erstellt ein Schalter-Gadget innerhalb der Gadget-Liste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


ButtonImageGadget()

Syntax

ButtonImageGadget(#Gadget, x, y, Breite, Höhe, ImageID)

Beschreibung

Erstellt ein Schalter-Gadget innerhalb der aktuellen Gadgetliste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Die 'ImageID' repräsentiert eine BMP-Datei und kann einfach mittels der Befehle ImageID()bzw. UseImage() aus der Image Library ermittelt werden.

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


ChangeListIconGadgetDisplay()

Syntax

ChangeListIconGadgetDisplay(#ListIconGadget, Modus)

Beschreibung

Ein ListIcon Gadget kann unter dem MS Windows Betriebssystem vier verschiedene Anzeigemodi annehmen: kleine Icons, große Icons, Listen und Reporte (Spalten). 'Modus' kann einen der folgenden Werte annehmen:

0: großer Icon Modus
1: kleiner Icon Modus
2: Listen Modus
3: Report (Spalten) Modus

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


CheckBoxGadget()

Syntax

CheckBoxGadget(#Gadget, x, y, Breite, Höhe, Text$)

Beschreibung

Erstellt ein Checkbox-Gadget (Häkchen-Schalter) innerhalb der Gadget-Liste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Der 'Text$' ist eine optionale Beschreibung der Checkbox, welche rechts vom Gadget dargestellt wird.

SetGadgetState() kann zum Ändern des Gadget-Status (mit oder ohne Häkchen) verwendet werden.
GetGadgetState() kann zum Ermitteln des aktuellen Gadget-Status (mit oder ohne Häkchen) verwendet werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


ClearGadgetItemList()

Syntax

ClearGadgetItemList(#Gadget)

Beschreibung

Löscht alle Einträge im angegebenen #Gadget. Das Gadget muss einer der folgenden
Typen sein:
- ComboBoxGadget()
- ListViewGadget()
- PanelGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


ClosePanelGadget()

Syntax

ClosePanelGadget()

Beschreibung

Beendet die Erstellung des aktuellen PanelGadget und geht zurück zur vorhergehenden Gadget-Liste. PanelGadget() muss vor dieser Funktion aufgerufen worden sein.

Unterstützte OS

Windows, Linux

Gadget - Inhaltsverzeichnis


CloseTreeGadgetNode()

Syntax

CloseTreeGadgetNode()

Beschreibung

Erlaubt das Schließen des aktuellen "Nodes" und die Rückkehr zum übergeordneten Eintrag. Dieser Befehl wird nach einem OpenTreeGadgetNode() benutzt.

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


ComboBoxGadget()

Syntax

ComboBoxGadget(#Gadget, x, y, Breite, Höhe)

Beschreibung

Erstellt ein ComboBox (Auswahl-) Gadget innerhalb der aktuellen Gadget-Liste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Sobald eine ComboBox erstellt wurde, ist ihre Liste mit Einträgen leer. Die folgenden Befehle können benutzt werden, um auf den Listen-Inhalt zuzugreifen:

- AddGadgetItem(): fügt einen Eintrag hinzu
- RemoveGadgetItem(): entfernt einen Eintrag
- ClearGadgetItemList(): entfernt alle Einträge

SetGadgetState() kann zum Ändern des aktuellen Elements verwendet werden.
GetGadgetState() kann zum Ermitteln des Indexes vom aktuellen Element verwendet werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


CountGadgetItems()

Syntax

Result = CountGadgetItems(#Gadget)

Beschreibung

Gibt die Anzahl an Einträgen im angegebenen #Gadget zurück. Der Index des ersten Eintrags beginnt bei 1. Beinhaltet das #Gadget keinerlei Einträge, wird 0 zurückgegeben. Dies ist eine universelle Funktion, welche mit allen Funktionen, die mehrere Einträge verwalten, arbeitet:

- ListViewGadget()
- ListIconGadget()
- PanelGadget()
- ComboGadget()
- TreeGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


CreateGadgetList()

Syntax

Result = CreateGadgetList(WindowID())

Beschreibung

Reserviert die Ressourcen für eine zukünftige Gadgetliste. Dieser Befehl muss vor allen Befehlen zur Gadget-Erstellung wie ButtonGadget(), etc... aufgerufen werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


DisableGadget()

Syntax

DisableGadget(#Gadget, Status)

Beschreibung

Deaktiviert oder aktiviert ein Gadget. Ist der Status = 1 wird das Gadget deaktiviert, bei einem Status = 0 wird es aktiviert.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


Frame3DGadget()

Syntax

Frame3DGadget(#Gadget, x, y, Breite, Höhe, Text$, Flags)

Beschreibung

Erstellt ein Frame3D (Rahmen) Gadget innerhalb der Gadget-Liste. Diese Art von Gadget dient nur zur dekorativen Zwecken. Mittels der folgenden Flags Werte können verschiedene Renderformen festgelegt werden:

- 0: Normal, 3D Rahmen - 1: Doppelt vertiefter Rahmen - 2: Einfach vertiefter Rahmen

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


FreeGadget()

Syntax

FreeGadget(#Gadget)

Beschreibung

Entfernt das angegebene #Gadget (und gibt dessen Ressourcen frei).

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GadgetHeight()

Syntax

Result = GadgetHeight(#Gadget)

Beschreibung

Gibt die Höhe des angegebenen #Gadget zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GadgetID()

Syntax

GadgetID = GadgetID(#Gadget)

Beschreibung

Ermittelt die einmalige GadgetID des angegebenen #Gadget.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GadgetToolTip()

Syntax

GadgetToolTip(#Gadget, Text$)

Beschreibung

Assoziiert den angegebenen Text$ mit dem #Gadget. Ein ToolTip-Text ist ein Text, der (in einer kleinen gelben Box) angezeigt wird, wenn der Mauszeiger eine Weile über einem Gadget verharrt.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GadgetWidth()

Syntax

Result = GadgetWidth(#Gadget)

Beschreibung

Gibt die Breite des angegebenen #Gadget zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GadgetX()

Syntax

Result = GadgetX(#Gadget)

Beschreibung

Gibt die X-Position des angegebenen #Gadget zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GadgetY()

Syntax

Result = GadgetY(#Gadget)

Beschreibung

Gibt die Y-Position des angegebenen #Gadget zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GetGadgetItemState()

Syntax

Result = GetGadgetItemState(#Gadget, Item)

Beschreibung

Gibt den Status des Eintrags 'Item' vom angegebenen #Gadget zurück. Dies ist eine universelle Funktion, welche zusammen mit den meisten Gadgettypen, die mehrere Einträge verwalten, arbeitet:

- ListViewGadget(): gibt 1 zurück, wenn der Eintrag ausgewählt ist, sonst 0.
- ListIconGadget(): gibt 1 zurück, wenn der Eintrag ausgewählt ist, sonst 0.
- TreeGadget(): gibt eine Kombination der folgenden Werte zurück:
1: Der Eintrag ist ausgewählt, sonst 0.
2: Der Eintrag ist ausgeklappt (ein Baum-Pfad geöffnet), sonst 0.
Ist das Ergebnis 'Result' zum Beispiel 3, dann ist der Eintrag ausgewählt und aufgeklappt.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GetGadgetItemText()

Syntax

Result$ = GetGadgetItemText(#Gadget, Item, Column)

Beschreibung

Gibt den Text des Eintrags 'Item' (in der Reihe 'Column') des angegebenen #Gadgets zurück. Dies
ist eine universelle Funktion, welche zusammen mit den meisten Gadgettypen, die mehrere Einträge
verwalten, arbeitet:

- ListViewGadget()
- ListIconGadget()
- PanelGadget()
- ComboGadget()
- TreeGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GetGadgetState()

Syntax

Result = GetGadgetState(#Gadget)

Beschreibung

Gibt den aktuellen Status des Gadgets zurück. Dies ist eine universelle Funktion, die mit den meisten der Gadgettypen arbeitet:

- CheckBoxGadget: gibt 1 zurück, wenn abgehakt, andernfalls 0.
- ComboBoxGagdet: gibt den aktuell gewählten Eintrag-Index zurück, -1 wenn nichts markiert ist.
- ListViewGadget: gibt den aktuell gewählten Eintrag-Index zurück, -1 wenn nichts markiert ist.
- OptionGadget: gibt 1 zurück, wenn aktiviert, andernfalls 0.
- PanelGadget: gibt den aktuellen Panel-Index zurück, -1 falls kein Panel.
- ProgressBarGadget: gibt den aktuellen Wert der Fortschrittsanzeige zurück.
- TrackBarGadget(): gibt die aktuelle Position des Schiebereglers zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


GetGadgetText()

Syntax

String$ = GetGadgetText(#Gadget)

Beschreibung

Gibt den Inhalt des Gadget-Textes vom angegebenen #Gadget zurück. Dieser Befehl ist besonders
nützlich für:
- StringGadget()
- ComboBoxGadget()
- ListViewGadget()
- TextGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


HideGadget()

Syntax

HideGadget(#Gadget, Status)

Beschreibung

Versteckt oder zeigt ein Gadget. Ist Status = 1, wird das Gadget versteckt. Ist Status = 0, wird es angezeigt.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


IPAddressGadget()

Syntax

IPAddressGadget(#Gadget, x, y, Breite, Höhe)

Beschreibung

Erstellt ein IPAdress Gadget innerhalb der aktuellen Gadgetliste. Dieses Gadget ermöglicht auf einfache Art und Weise die Eingabe einer kompletten IP-Adresse. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Die folgenden Befehle können in Zusammenhang mit diesem Gadget benutzt werden:

- GetGadgetState(): Ermittelt die aktuelle IP-Adresse (benutzen Sie IPAddressField(), um den Wert jedes Felds zu ermitteln).
- SetGadgetState(): Ändert die aktuelle IP-Adresse (benutzen Sie MakeIPAddress(), um eine gültige IP-Adresse zu erstellen).
- GetGadgetText(): Gibt die aktuelle IP-Adresse in Textform (mit Punkten getrennt) zurück, zum Beispiel "127.0.0.1".
- SetGadgetText(): Zur Zeit nur, um den Inhalt der IP-Adresse durch Übergabe eines Leerstrings zu löschen.

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


ImageGadget()

Syntax

ImageGadget(#Gadget, x, y, Breite, Höhe, ImageID)

Beschreibung

Erstellt ein Image-Gadget (Bild-Gadget) innerhalb der aktuellen Gadgetliste. Die 'ImageID' repräsentiert eine BMP-Datei und kann einfach mittels der Befehle ImageID()bzw. UseImage() aus der Image Library ermittelt werden. Die Gadgetgröße passt sich automatisch der Bildgröße an. Das Gadget hat keinerlei Eingabefunktion, deshalb werden Benutzereingaben (Mausklicks etc...) nicht ausgewertet.

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


ListIconGadget()

Syntax

ListIconGadget(#Gadget, x, y, Breite, Höhe, Titel$, TitelBreite)

Beschreibung

Erstellt ein ListIcon-Gadget innerhalb der aktuellen Gadgetliste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. 'Titel$' ist der Titel der ersten Spalte und 'Breite' seine ursprüngliche Breite. Sobald ein ListIcon erstellt wurde, ist seine Liste mit Einträgen leer. Die folgenden Befehle können zum Zugriff auf den Listeninhalt benutzt werden:

- AddGadgetItem(): Fügt einen Eintrag (mit optionalem Bild) hinzu
- RemoveGadgetItem(): Entfernt einen Eintrag
- ClearGadgetItemList(): Entfernt alle Einträge
- CountGadgetItems(): Ermittelt die Anzahl der aktuellen Einträge im #Gadget.
- GetGadgetItemState(): Ermittelt den aktuellen Status des angegebenen Eintrags.
- SetGadgetItemState(): Ändert den aktuellen Status des angegebenen Eintrags.
- GetGadgetItemText(): Ermittelt den aktuellen Text des angegebenen Eintrags.
- SetGadgetItemText(): Ändert den aktuellen Text des angegebenen Eintrags.

Benutzen Sie AddGadgetColumn(), um eine Spalte zu diesem Gadget hinzufügen.
Benutzen Sie ChangeListIconGadgetDisplay(), um den Darstellungsmodus des ListIcons zu verändern, da vier verschiedenen Formen unterstützt werden (große Icons, kleine Icons, Listen und Reports).

Bild-Vorschau

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


ListViewGadget()

Syntax

ListViewGadget(#Gadget, x, y, Breite, Höhe)

Beschreibung

Erstellt ein ListView Gadget (Auswahlliste) innerhalb der aktuellen Gadgetliste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Sobald ein ListView Gadget erstellt wurde, ist dessen Listeninhalt leer. Die folgenden Befehle können benutzt werden, um auf den Listen-Inhalt zuzugreifen:

- AddGadgetItem(): fügt einen Eintrag hinzu
- RemoveGadgetItem(): entfernt einen Eintrag
- ClearGadgetItemList(): entfernt alle Einträge

Mit dem Befehl EventType() kann überprüft werden, ob der User beim Auswählen eines Listeneintrags einen Doppelklick ausgeführt hat.

SetGadgetState() kann zum Ändern des ausgewählten Eintrags verwendet werden.
GetGadgetState() kann zum Ermitteln des Indexes vom ausgewählten Eintrag verwendet werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


OpenTreeGadgetNode()

Syntax

OpenTreeGadgetNode()

Beschreibung

Beim Einfügen von Einträgen zu einem TreeGadget(), benutzen Sie OpenTreeGadgetNode(), um einen neuen "Node" (Verzweigung) in der aktuellen Eintrags-Liste zu erstellen. Um diesen "Node" zu schließen und zum übergeordneten Eintrag zurückzukehren, benutzen Sie einfach CloseTreeGadgetNode().

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


OptionGadget()

Syntax

OptionGadget(#Gadget, x, y, Breite, Höhe, Text$)

Beschreibung

Erstellt ein Optionen-Gadget innerhalb der Gadgetliste. Beim ersten Aufruf dieser Funktion wird eine Gruppe erstellt und alle folgenden Aufrufe von OptionGadget() fügen dieser Gruppe ein Gadget hinzu. Um die Gruppe abzuschließen, rufen Sie einfach einen anderen Gadgettyp auf. Diese Art von Gadgets sind sehr nützlich, da zur gleichen Zeit immer nur ein Gadget der Gruppe selektiert sein kann.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


PanelGadget()

Syntax

PanelGadget(#Gadget, x, y, Breite, Höhe)

Beschreibung

Erstellt ein Panel-Gadget innerhalb der Gadgetliste. Sobald ein Panel (Schalttafel) erstellt wurde, ist seine Liste mit Einträgen leer. Die folgenden Befehle können benutzt werden, um auf den Inhalt der Liste zuzugreifen:

- AddGadgetItem(): fügt einen Eintrag hinzu
- RemoveGadgetItem(): entfernt einen Eintrag
- ClearGadgetItemList(): entfernt alle Einträge

Die nächsten Gadgets werden automatisch auf dem neuen Panel-Gadget Eintrag erstellt. Dies ist sehr bequem. Wenn das Panel-Gadget mit allen benötigten Gadgets gefüllt wurde, muss ClosePanelGadget() aufgerufen werden, um zur vorhergehenden Gadgetliste zurückzukehren. Dies bedeutet auch, dass ein Panel-Gadget auch auf einem anderen Panel-Gadget erstellt werden kann...

SetGadgetState() kann zum Ändern des aktiven Panels verwendet werden.
GetGadgetState() kann zum Ermitteln des Indexes des aktuellen Panels verwendet werden.

Unterstützte OS

Windows, Linux

Gadget - Inhaltsverzeichnis


ProgressBarGadget()

Syntax

ProgressBarGadget(#Gadget, x, y, Breite, Höhe, Minimum, Maximum)

Beschreibung

Erstellt ein ProgressBar-Gadget (Fortschrittsanzeige) in der aktuellen Gadgetliste. Die Werte sind festgelegt zwischen 'Minimum' und 'Maximum'. Zum Ändern des aktuellen Wertes, benutzen Sie einfach SetGadgetState().

SetGadgetState() kann zum Ändern der Fortschrittsanzeige verwendet werden.
GetGadgetState() kann zum Ermitteln des aktuellen Wertes der Fortschrittsanzeige verwendet werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


RemoveGadgetItem()

Syntax

RemoveGadgetItem(#Gadget, Position)

Beschreibung

Entfernt einen Eintrag innerhalb der #Gadget an der angegebenen Position. Der
Positions-Index beginnt bei 0. Der Gadgettyp kann einer der folgenden sein:
- ComboBoxGadget()
- ListViewGadget()
- PanelGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


ResizeGadget()

Syntax

ResizeGadget(#Gadget, x, y, Breite, Höhe)

Beschreibung

Ändert das angegebene #Gadget auf die neue Position und Größe. Um das Erstellen eines in Echtzeit größenveränderbaren ("realtime resizeable") Graphical User Interface (GUI) zu vereinfachen, kann '-1' an jeden Parameter (x, y, Breite oder Höhe) übergeben werden und dieser Parameter wird dann nicht verändert. Dies ist sehr nützlich, denn oftmals soll ein Gadget nur in Breite oder Höhe verändert werden.
  [...]

  ResizeGadget(0, -1, -1, 300, -1) ; Ändert nur die Gadgetbreite.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


SetGadgetFont()

Syntax

SetGadgetFont(FontID())

Beschreibung

Legt den Zeichensatz fest, der für neu erstellte Gadgets benutzt wird.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


SetGadgetItemState()

Syntax

Result = SetGadgetItemState(#Gadget, Eintrag, Status)

Beschreibung

Ändert den Status des angegebenen 'Eintrag's im betreffenden #Gadget. Dies ist eine universelle Funktion, welche zusammen mit den meisten Gadgettypen, die mehrere Einträge verwalten, arbeitet. 'Status' kann folgende Werte annehmen:

- ListViewGadget(): 1, wenn der Eintrag ausgewählt ist, sonst 0.
- ListIconGadget(): 1, wenn der Eintrag ausgewählt ist, sonst 0.
- TreeGadget(): Eine Kombination der folgenden Werte:
1: Der Eintrag ist ausgewählt, sonst 0.
2: Der Eintrag ist ausgeklappt (ein Baum-Pfad geöffnet), sonst 0.
Ist der 'Status' zum Beispiel 3, dann ist der Eintrag ausgewählt und aufgeklappt.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


SetGadgetItemText()

Syntax

SetGadgetItemText(#Gadget, Eintrag, Text$, Column)

Beschreibung

Ändert den Text des angegebenen 'Eintrag's (in der Reihe 'Column') bei angegebenen #Gadget. Dies
ist eine universelle Funktion, welche zusammen mit den meisten Gadgettypen, die mehrere Einträge
verwalten, arbeitet:

- ListViewGadget()
- ListIconGadget()
- PanelGadget()
- ComboGadget()
- TreeGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


SetGadgetState()

Syntax

Result = SetGadgetState(#Gadget, Status)

Beschreibung

Ändert den aktuellen Status des #Gadget. Dies ist eine universelle Funktion, welche mit den meisten der Gadgets arbeitet:

- CheckBoxGadget(): 1 um es abzuhaken, andernfalls 0.
- ComboBoxGadget(): ändert den aktuell selektierten Eintrag.
- ListViewGadget(): ändert den aktuell selektierten Eintrag.
- OptionGadget(): 1 um es zu aktivieren, andernfalls 0.
- PanelGadget(): ändert das aktuelle Panel.
- ProgressBarGadget(): ändert den Status der Fortschrittsanzeige.
- TrackBarGadget(): ändert die aktuelle Regler-Position.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


SetGadgetText()

Syntax

SetGadgetText(#Gadget, Text$)

Beschreibung

Ändert den Inhalt des Gadget-Textes im angegebenen #Gadget. Dieser Befehl ist insbesondere
nützlich bei:
- StringGadget()
- ComboBoxGadget()
- TextGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


StringGadget()

Syntax

StringGadget(#Gadget, x, y, Breite, Höhe, Inhalt$)

Beschreibung

Erstellt ein String-Gadget innerhalb der Gadget-Liste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Sie können den anfänglichen Inhalt (Inhalt$) des String-Gadgets mit übergeben. Später kann der Inhalt mit den Befehlen SetGadgetText() und GetGadgetText() verändert werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


TextGadget()

Syntax

TextGadget(#Gadget, x, y, Breite, Höhe, Text$)

Beschreibung

Erstellt ein Text-Gadget innerhalb der Gadget-Liste. Ein Text-Gadget ist ein einfacher Textbereich. Dessen Inhalt kann mit den Befehlen SetGadgetText()und GetGadgetText() geändert werden.

Unterstützte OS

Windows, AmigaOS, Linux

Gadget - Inhaltsverzeichnis


TrackBarGadget()

Syntax

TrackBarGadget(#Gadget, x, y, Breite, Höhe, Minimum, Maximum)

Beschreibung

Erstellt ein TrackBar Gadget in der aktuellen Gadgetliste. Dieses ermöglicht die Auswahl eines Wertebereichs mit Hilfe eines Schiebereglers, wie er in verschiedenen Multimedia-Playern zu finden ist. Der 'Minimum - Maximum' sollte zwischen 0 und 10.000 liegen. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Die folgenden Befehle können zum Zugriff auf dieses Gadget verwendet werden:

- GetGadgetState(): Gibt die aktuelle Regler-Position (Wert innerhalb der Minimum-Maximum Spanne) zurück.
- SetGadgetState(): Ändert die aktuelle Regler-Position.

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


TreeGadget()

Syntax

TreeGadget(#Gadget, x, y, Breite, Höhe)

Beschreibung

Erstellt ein Tree-Gadget (Baum-Gadget) innerhalb der aktuellen Gadgetliste. #Gadget ist die Nummer, die (später) von der EventGadgetID() Funktion zurückgegeben wird. Sobald ein Tree (Baum) erstellt wurde, ist seine Liste mit Einträgen leer. Die folgenden Befehle können benutzt werden, um auf den Listeninhalt zuzugreifen:

- AddGadgetItem(): Fügt einen Eintrag (mit optionalem Bild) hinzu.
- ClearGadgetItemList(): Entfernt alle Einträge.
- CountGadgetItems(): Ermittelt die Anzahl der aktuellen Einträge im #Gadget.
- GetGadgetItemState(): Ermittelt den aktuellen Status des angegebenen Eintrags.
- SetGadgetItemState(): Ändert den aktuellen Status des angegebenen Eintrags.
- GetGadgetItemText(): Ermittelt den aktuellen Textinhalt des angegebenen Eintrags.
- SetGadgetItemText(): Ändert den aktuellen Text des angegebenen Eintrags.

Bild-Vorschau

Unterstützte OS

Windows

Gadget - Inhaltsverzeichnis


UseGadgetList()

Syntax

UseGadgetList(WindowID)

Beschreibung

Macht das angegebene Fenster 'WindowID' zum aktuellen Fenster, auf welchem die Gadgetliste ihre Gadgets hinzufügt. Die WindowID kann einfach mit dem Befehl WindowID() ermittelt werden.

Unterstützte OS

Windows, Linux

Gadget - Inhaltsverzeichnis


Help

PureBasic - Help

Einleitung

Die Hilfe ist ein sehr bedeutender Bestandteil jeder Software. Sie erlaubt dem Anwender das einfache und effiziente Entdecken der Software Features. PureBasic ermöglicht das Anzeigen von Standard Hilfe-Dateien mit "Global" und "Kontext" Unterstützung.

Unter Microsoft Windows werden zwei Formate von Hilfe-Dateien unterstützt: .hlp (altes Format) und .chm (HTML-basierend, neues Format).

Befehlsübersicht

CloseHelp
OpenHelp

Beispiel

Help.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CloseHelp()

Syntax

CloseHelp()

Beschreibung

Schließt die zuvor mit OpenHelp() geöffnete Hilfe.

Unterstützte OS

Windows, AmigaOS, Linux

Help - Inhaltsverzeichnis


OpenHelp()

Syntax

OpenHelp(Dateiname$, Thema$)

Beschreibung

Öffnet ein Hilfe-Fenster und stellt dieses dar. Ist der 'Thema$' keine Null, stellt die Hilfe direkt die entsprechende Seite dar (sehr nützlich für Online/kontext-sensitive Hilfe). Unter Microsoft Windows werden zwei Formate von Hilfe-Dateien unterstützt: .hlp (altes Format) und .chm (HTML-basierend, neues Format).

Unterstützte OS

Windows, AmigaOS, Linux

Help - Inhaltsverzeichnis


Image

PureBasic - Image

Einleitung

Images (Bilder) sind grafische Objekte, welche in einem Fenster oder in verschiedenen Gadgets dargestellt werden können. PureBasic unterstützt derzeit die BMP und Icon (.ico) Bild-Typen.

Befehlsübersicht

CatchImage
CopyImage
CreateImage
FreeImage
GrabImage
ImageDepth
ImageHeight
ImageID
ImageOutput
ImageWidth
LoadImage
ResizeImage
SaveImage
UseImage

Beispiel

Image.pb

Unterstützte OS

Windows, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CatchImage()

Syntax

Result = CatchImage(#Image, Speicheradresse)

Beschreibung

Lädt das angegebene Bild '#Image' von der angegebenen Speicheradresse. Das Bild muss im BMP-Format vorliegen (Icons werden nicht unterstützt). Ist das Laden des Bildes nicht möglich, wird als Ergebnis 0 zurückgegeben. Ein geladenes Bild kann mit Hilfe des FreeImage() Befehls freigegeben werden. Dieser Befehl ist nützlich in Verbindung mit dem 'IncludeBinary' Schlüsselwort. Damit können Bilder mit in das Executable gepackt werden. Nichtsdestotrotz, benutzen Sie diese Option mit Bedacht, da hiermit mehr Speicher benötigt wird, als wenn die Bilddatei in einer externen Datei gespeichert wird (die Datei befindet sich im Speicher des Executable und im physikalischen Speicher).

Beispiel:
  CatchImage(0, ?Logo)
  End

  Logo: IncludeBinary "Logo.bmp"

Unterstützte OS

Windows, AmigaOS, Linux

Image - Inhaltsverzeichnis


CopyImage()

Syntax

CopyImage(#Image1, #Image2)

Beschreibung

Erstellt ein neues Bild '#Image2', welches identisch zur Quelle '#Image1' ist.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


CreateImage()

Syntax

CreateImage(#Image, Breite, Höhe)

Beschreibung

Erstellt ein leeres Bild (Image), welches zum darauf Zeichnen benutzt werden kann. Das Bild-Format wird vom aktuellen Bildschirm-Format abgeleitet. Zum Beispiel kann DrawImage() benutzt werden, um dieses Bild auf einem Fenster anzuzeigen.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


FreeImage()

Syntax

FreeImage(#Image)

Beschreibung

Gibt das angegebene Bild '#Image' und dessen zugehörigen Speicher frei.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


GrabImage()

Syntax

GrabImage(#Image1, #Image2, x, y, Breite, Höhe)

Beschreibung

Erstellt ein neues '#Image2' aus dem angegebenen Bereich (x, y, Breite, Höhe) der Quelle '#Image1'.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


ImageDepth()

Syntax

Result = ImageDepth()

Beschreibung

Ermittelt die Tiefe des aktuellen Image. Tiefe gibt die Anzahl an Bitplanes an, die das Bild enthält. Mit anderen Worten, es repräsentiert die Anzahl Farben des Bildes. Beispiel: ein 24 Bit Bild (16 Millionen Farben) wird '24' zurückgeben. Ein 256 Farben-Bild wird '8' (8 Bit) zurückgeben. Ein Monochrom-Bild wird '1' zurückgeben.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


ImageHeight()

Syntax

Result = ImageHeight()

Beschreibung

Gibt die Höhe des aktuellen Bildes in Pixel zurück.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


ImageID()

Syntax

Result = ImageID()

Beschreibung

Gibt die ImageID des aktuellen Bildes zurück.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


ImageOutput()

Syntax

OutputID = ImageOutput()

Beschreibung

Ermittelt die 'OutputID' des aktuell benutzten Images, um darauf 2D-Zeichen-Operationen ausführen zu können. Es benutzt die PureBasic 2DDrawing Library (siehe StartDrawing()).

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


ImageWidth()

Syntax

Result = ImageWidth()

Beschreibung

Gibt die Breite des aktuellen Bildes in Pixel zurück.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


LoadImage()

Syntax

Result = LoadImage(#Image, DateiName$)

Beschreibung

Lädt das angegebene Bild. Das Bildformat kann entweder eine BMP oder eine ICON (.ico) Datei sein. Wenn die Funktion fehlschlägt, wird 0 zurückgegeben, andernfalls ist alles in Ordnung.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


ResizeImage()

Syntax

ResizeImage(#Image, Breite, Höhe)

Beschreibung

Verändert die Größe des Bildes '#Image' auf die angegebene Dimension (Breite, Höhe).

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


SaveImage()

Syntax

SaveImage(#Image, DateiName$)

Beschreibung

Speichert das aktuelle Bild in die angegebene Datei.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


UseImage()

Syntax

Result = UseImage(#Image)

Beschreibung

Ändert das aktuelle Bild in das angegebene neue #Image. 'Result' enthält die ImageID des neuen aktuellen Bildes.

Unterstützte OS

Windows, Linux

Image - Inhaltsverzeichnis


Joystick

PureBasic - Joystick

Einleitung

PureBasic bietet vollen Zugriff auf am Computer angeschlossene Joysticks. Es unterstützt Standard-Joysticks mit bis zu 8 Knöpfen. Sie benutzt die DirectX Technologie.

Befehlsübersicht

ExamineJoystick
InitJoystick
JoystickAxisX
JoystickAxisY
JoystickButton

Beispiel

Joystick.pb

Unterstützte OS

Windows, AmigaOS

Referenz-Handbuch - Inhaltsverzeichnis


ExamineJoystick()

Syntax

Movement = ExamineJoystick()

Beschreibung

Diese Funktion muss vor den nachfolgenden Befehlen aufgerufen werden, um den aktuellen Status des Joysticks wiederzugeben: JoystickButton(), JoystickAxisX(), JoystickAxisY(). Zur Zeit wird nur der Standard-Joystick unterstützt.

Unterstützte OS

Windows, AmigaOS

Joystick - Inhaltsverzeichnis


InitJoystick()

Syntax

Result = InitJoystick()

Beschreibung

Initialisiert die gesamte Programmumgebung zur späteren Benutzung der Joystick-Befehle. Sie müssen diese Funktion vor allen anderen Befehlen aus dieser Bibliothek aufrufen. Dieser Befehl versucht, DirectX (v3.0 mit NT4.0 Kompatibilität oder sonst v7.0) zu öffnen. Wenn dies also fehlschlägt, liegt es möglicherweise an einer zu alten oder ganz fehlenden Version von DirectX.

Unterstützte OS

Windows, AmigaOS

Joystick - Inhaltsverzeichnis


JoystickAxisX()

Syntax

Result = JoystickAxisX()

Beschreibung

Gibt einen der folgenden Werte zurück:

-1: Bewegung nach links
0: Keine Bewegung auf der X-Achse
1: Bewegung nach rechts

ExamineJoystick() muss vor dieser Funktion aufgerufen werden, um den aktuellen Joystick-Status zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Joystick - Inhaltsverzeichnis


JoystickAxisY()

Syntax

Result = JoystickAxisY()

Beschreibung

Gibt einen der folgenden Werte zurück:

-1: Bewegung nach oben (vorn)
0: Keine Bewegung auf der Y-Achse
1: Bewegung nach unten (zurück)

ExamineJoystick() muss vor dieser Funktion aufgerufen werden, um den aktuellen Joystick-Status zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Joystick - Inhaltsverzeichnis


JoystickButton()

Syntax

Result = JoystickButton(ButtonNumber)

Beschreibung

Gibt 0 zurück, wenn der angegebene Joystick-Knopf 'ButtonNumber' nicht gedrückt wird, andernfalls wird ein Wert ungleich 0 zurückgegeben. Eine beliebige Anzahl an Knöpfen kann zur gleichen Zeit gedrückt sein. ExamineJoystick() muss vor dieser Funktion aufgerufen werden, um den aktuellen Status der Joystick-Knöpfe zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Joystick - Inhaltsverzeichnis


Keyboard

PureBasic - Keyboard

Einleitung

PureBasic bietet einfachen und schnellen Zugriff auf die Tastatur und sollte nur in Spielen oder Anwendungen benutzt werden, die einen extrem schnellen Zugriff auf die Tastatur im "Roh-Format" (raw) benötigen. Es wird die DirectX Technologie benutzt.

Befehlsübersicht

ExamineKeyboard
InitKeyboard
KeyboardPushed

Beispiel

Keyboard.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ExamineKeyboard()

Syntax

ExamineKeyboard()

Beschreibung

Aktualisiert den Tastatur-Status. Dieser Befehl muss vor einem KeyboardPushed()Befehl aufgerufen werden.

Unterstützte OS

Windows, AmigaOS, Linux

Keyboard - Inhaltsverzeichnis


InitKeyboard()

Syntax

Result = InitKeyboard()

Beschreibung

Initialisiert die Programmumgebung zur späteren Benutzung der Keyboard Befehle. Sie müssen diese Funktion vor allen anderen Befehlen aus dieser Bibliothek aufrufen. Dieser Befehl versucht, DirectX (v3.0 mit NT4.0 Kompatibilität oder sonst v7.0) zu öffnen. Wenn dies also fehlschlägt, liegt es möglicherweise an einer zu alten oder ganz fehlenden Version von DirectX.

Unterstützte OS

Windows, AmigaOS, Linux

Keyboard - Inhaltsverzeichnis


KeyboardPushed()

Syntax

Result = KeyboardPushed(KeyID)

Beschreibung

Gibt 0 zurück, wenn die angegebene Taste 'KeyID' nicht gedrückt wird, andernfalls wird ein Wert ungleich 0 zurückgegeben. Eine beliebige Anzahl an Tasten kann zur gleichen Zeit gedrückt werden. Der Befehl ExamineKeyboard() muss vor dieser Funktion aufgerufen werden, um den Tastatur-Status zu aktualisieren.

KeyID : eine Konstante, welche die zu überprüfende Taste repräsentiert.

Liste gültiger Konstanten

#PB_KEY_A ; Buchstaben-Tasten
#PB_KEY_B
#PB_KEY_C
...
#PB_KEY_Z

#PB_KEY_LEFT ; Cursor-Tasten
#PB_KEY_RIGHT
#PB_KEY_UP
#PB_KEY_DOWN

#PB_KEY_F1 ; Funktions-Tasten
...
#PB_KEY_F12

#PB_KEY_SPACE
#PB_KEY_ESCAPE
#PB_KEY_LEFT_CONTROL
#PB_KEY_RIGHT_CONTROL
#PB_KEY_LEFT_SHIFT
#PB_KEY_RIGHT_SHIFT

Unterstützte OS

Windows, AmigaOS, Linux

Keyboard - Inhaltsverzeichnis


Library

PureBasic - Library

Einleitung

Libaries (Befehls-Bibliotheken) sind "shared" (zur Benutzung mit verschiedenen Applikationen freigegebene) OS-Komponenten, die dem Programmierer spezielle Funktionen anbieten. Zum Beispiel kann eine Library Befehle zum einfachen Handhaben und Manipulieren von Bildern enthalten. Jedes OS bietet eine Anzahl an "shared" Libraries, um das Programmierer-Leben zu vereinfachen. Mit PureBasic ist es möglich, diese Libraries einfach und dynamisch zu benutzen !

Unter Windows sind diese Libraries gut bekannt unter dem Namen 'DLL'.

Befehlsübersicht

CallFunction
CallFunctionFast
CloseLibrary
IsFunction
OpenLibrary

Beispiel

Library.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CallFunction()

Syntax

Result = CallFunction(#Library, FunctionName$ [,Parameter1 [, Parameter2...]])

Beschreibung

Ruft eine Funktion in der angegebenen #Library, die zuvor mittels OpenLibrary() geöffnet wurde, anhand ihres Namens 'FunctionName$' auf. Eine beliebige Anzahl an Parametern kann angegeben werden, muss aber mit der von der Funktion benötigten Anzahl übereinstimmen. Zum Beispiel, wenn eine Funktion 2 Parameter benötigt, müssen 2 Parameter angegeben werden, auch wenn diese 2 Werte gleich null sind. 'Result' enthält das Ergebnis der aufgerufenen Funktion.

Unterstützte OS

Windows, AmigaOS, Linux

Library - Inhaltsverzeichnis


CallFunctionFast()

Syntax

Result = CallFunctionFast(*FunctionPointer [,Parameter1 [, Parameter2...]])

Beschreibung

Ruft eine Library-Funktion mittels ihres Zeigers '*FunctionPointer', der zuvor mit IsFunction()ermittelt wurde, auf. Dies ist die schnellste Möglichkeit hierfür. Eine beliebige Anzahl an Parametern kann angegeben werden, muss aber mit der von der Funktion benötigten Anzahl übereinstimmen. Zum Beispiel, wenn eine Funktion 2 Parameter benötigt, müssen 2 Parameter angegeben werden, auch wenn diese 2 Werte gleich null sind. 'Result' enthält das Ergebnis der aufgerufenen Funktion.

Unterstützte OS

Windows, AmigaOS, Linux

Library - Inhaltsverzeichnis


CloseLibrary()

Syntax

CloseLibrary(#Library)

Beschreibung

Schließt die angegebene #Library und gibt den zuvor reservierten Speicher frei.

Unterstützte OS

Windows, AmigaOS, Linux

Library - Inhaltsverzeichnis


IsFunction()

Syntax

Result = IsFunction(#Library, FunctionName$)

Beschreibung

Überprüft, ob die angegebene '#Library', welche zuvor mit OpenLibrary() geöffnet wurde, die angegebene Funktion 'FunctionName$' enthält. Achtung, diese Funktion arbeitet immer "case-sensitive" (achtet auf Groß- und Kleinschreibung). Ist das Ergebnis 'Result' gleich 0, dann wurde die Funktion nicht gefunden. Andernfalls wird ein Zeiger (Pointer) auf die Funktion zurückgegeben, nützlich in Verbindung mit CallFunctionFast().

Unterstützte OS

Windows, AmigaOS, Linux

Library - Inhaltsverzeichnis


OpenLibrary()

Syntax

Result = OpenLibrary(#Library, DateiName$)

Beschreibung

Öffnet die angegebene Library. Ist das 'Ergebnis' gleich 0, dann konnte die Library nicht geöffnet werden (die Library wurde nicht gefunden oder ist korrupt).

Unterstützte OS

Windows, AmigaOS, Linux

Library - Inhaltsverzeichnis


LinkedList

PureBasic - LinkedList

Einleitung

Die verknüpften Listen (linked lists) sind Objekte, welche dynamisch entsprechend Ihrem Bedarf reserviert werden. Sie sind eine Liste von Elementen, wobei jedes Element vollkommen unabhängig von einem anderen ist. Sie können beliebige Elemente hinzufügen, Elemente an der von Ihnen gewünschten Stelle einfügen, einige andere löschen und vieles mehr. Diese Art des Datenmanagements wird sehr oft benutzt, da sie die beste Möglichkeit darstellt, mit Daten - deren Anzahl und Größe nicht bekannt ist - umzugehen.

Befehlsübersicht

AddElement
ChangeCurrentElement
ClearList
CountList
DeleteElement
FirstElement
InsertElement
LastElement
ListIndex
NextElement
PreviousElement
ResetList

Beispiel

LinkedList.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


AddElement()

Syntax

AddElement(linkedlist())

Beschreibung

Fügt ein neues Listenelement nach der aktuellen Position ein. Dieses neue Element wird auch das aktuelle Element der Liste.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


ChangeCurrentElement()

Syntax

ChangeCurrentElement(linkedlist(), *NewElement)

Beschreibung

Ändert das aktuelle Element der angegebenen Liste auf das angegebene *NewElement. Das *NewElement muss ein Zeiger (Pointer) auf ein anderes in der Liste existierendes Element sein. Diese Funktion ist sehr nützlich, um sich ein Element zu merken und es nach der Verarbeitung anderer Befehle wieder aufzurufen. Die Funktion sollte mit Vorsicht und nur von fortgeschrittenen Usern benutzt werden.

Beispiel:
  *Old_Element = @mylist()   ; Ermittelt die Adresse des aktuellen Elements

  ResetList(mylist())        ; Durchführen einer Suchschleife nach allen
  While NextItem(mylist())   ; Elementen mit Name "John" und Änderung dieser in "J"
    If mylist()\name = "John"
      mylist()\name = "J"
    EndIf
  Wend

  ChangeCurrentElement(mylist(), *Old_Element) ; Wiederherstellen unseres Elements vor der Suche

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


ClearList()

Syntax

ClearList(linkedlist())

Beschreibung

Löscht alle Elemente in dieser Liste und gibt deren Speicherplatz frei. Nach diesem Aufruf ist die Liste noch benutzbar, es befinden sich aber keine Elemente mehr in der Liste.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


CountList()

Syntax

Result = CountList(linkedlist())

Beschreibung

Zählt, wieviele Elemente in der verknüpften Liste vorhanden sind. Es ändert nicht das aktuelle Listenelement.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


DeleteElement()

Syntax

DeleteElement(linkedlist())

Beschreibung

Entfernt das aktuelle Element aus der Liste. Nach dem Aufruf dieser Funktion wird das - auf das gelöschte Element folgende - Element das neue aktuelle Element. Haben Sie das letzte Element in der Liste gelöscht, wird das aktuelle Element auf 0 gesetzt.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


FirstElement()

Syntax

FirstElement(linkedlist())

Beschreibung

Ändert das aktuelle Listenelement auf das erste Listenelement.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


InsertElement()

Syntax

InsertElement(linkedlist())

Beschreibung

Fügt ein neues Element vor der aktuellen Position ein. Dieses neue Element wird das aktuelle Element der Liste.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


LastElement()

Syntax

LastElement(linkedlist())

Beschreibung

Ändert das aktuelle Listenelement auf das letzte Listenelement.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


ListIndex()

Syntax

Index = ListIndex(linkedlist())

Beschreibung

Gibt die Position des aktuellen Listenelements zurück, das erste Element in der Liste befindet sich dabei an Position 1.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


NextElement()

Syntax

Result = NextElement(linkedlist())

Beschreibung

Ändert das aktuelle Element auf das nächste Listenelement und gibt dessen Adresse zurück, oder 0 wenn keine weiteren Elemente existieren.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


PreviousElement()

Syntax

Result = PreviousElement(linkedlist())

Beschreibung

Ändert das aktuelle Element auf das vorhergehende Element und gibt dessen Adresse zurück, oder 0 wenn das aktuelle Element bereits das erste Element war oder gar keine Elemente in der Liste existieren.

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


ResetList()

Syntax

ResetList(linkedlist())

Beschreibung

Veranlasst ein Rücksetzen der "Linked List" vor das erste Element. Das bedeutet, dass kein Element mehr gültig ist. Dies ist sehr nützlich, um alle Elemente mittels NextElement() abzuarbeiten.

Beispiel:
  ResetList(Friends())
  While NextElement(Friends())
    ...
  Wend

Unterstützte OS

Windows, AmigaOS, Linux

LinkedList - Inhaltsverzeichnis


Math

PureBasic - Math

Einleitung

Die 'Math' (Mathe) Library bietet grundlegende arithmetische Funktionen wie Cos(), Sin(), Pow(), Log() etc... Beinahe alle Befehle arbeiten mit Float Zahlen (.f).

Befehlsübersicht

ACos
ASin
ATan
Abs
Cos
Log
Log10
Pow
Round
Sin
Sqr
Tan

Beispiel

Math.pb

Unterstützte OS

Windows, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ACos()

Syntax

Result.f = ACos(Winkel.f)

Beschreibung

Gibt den Arc-Cosinus des angegebenen Winkels zurück, als Bogeneinheit (zwischen 0 und 1).

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


ASin()

Syntax

Result.f = ASin(Winkel.f)

Beschreibung

Gibt den Arc-Sinus des angegebenen Winkels zurück, als Bogeneinheit (zwischen 0 und 1).

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


ATan()

Syntax

Result.f = ATan(Winkel.f)

Beschreibung

Gibt den Arc-Tangens des angegebenen Winkels zurück, als Bogeneinheit (zwischen 0 und 1).

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Abs()

Syntax

Result.f = Abs(Zahl.f)

Beschreibung

Gibt den Absolut-Wert (ohne Vorzeichen) der angegebenen Float-Zahl zurück. Diese Funktion arbeitet nur korrekt mit Float-Zahlen. Mit Integer (Ganzzahlen) schlägt sie fehl, wenn die Integerzahl zu groß (Verlust der Präzision) ist. Eine weitere Funktion hierfür wird folgen.

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Cos()

Syntax

Result.f = Cos(Winkel.f)

Beschreibung

Gibt den Cosinus des angegebenen Winkels zurück, als Bogeneinheit (zwischen 0 und 1).

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Log()

Syntax

Result.f = Log(Zahl.f)

Beschreibung

Gibt den Log(arythmus) der angegebenen Zahl zurück.

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Log10()

Syntax

Result.f = Log10(Zahl.f)

Beschreibung

Gibt den Log(arythmus) auf Basis 10 der angegebenen Zahl zurück.

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Pow()

Syntax

Result.f = Pow(Basis.f, Exponent.f)

Beschreibung

Gibt das Ergebnis von Basis^Exponent zurück. (Die Basis.f wird sooft mit sich selbst multipliziert, wie im Exponent.f angegeben.)

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Round()

Syntax

Result.f = Round(Zahl.f, Modus)

Beschreibung

Rundet die angegebenen Float-Zahl abhängig vom angegebenen Modus. Ist Modus = 0, wird die Zahl abgerundet (es wird nur der Integer-Teil benutzt). Ist Modus = 1, wird die Zahl aufgerundet.

Example
Result.f = Round(11.5, 0) ; ergibt 11
Result.f = Round(11.5, 1) ; ergibt 12

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Sin()

Syntax

Result.f = Sin(Winkel.f)

Beschreibung

Gibt den Sinus des angegebenen Winkels zurück, als Bogeneinheit (zwischen 0 und 1).

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Sqr()

Syntax

Result.f = Sqr(Zahl.f)

Beschreibung

Gibt die Quadratwurzel der angegebenen Zahl zurück.

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Tan()

Syntax

Result.f = Tan(Winkel.f)

Beschreibung

Gibt den Tangens des angegebenen Winkels zurück, als Bogeneinheit (zwischen 0 und 1).

Unterstützte OS

Windows, Linux

Math - Inhaltsverzeichnis


Memory

PureBasic - Memory

Einleitung

Manchmal ist es sehr nützlich, Zugriff auf den Systemspeicher (RAM) zu haben, um einige zeitintensive Operationen zu verarbeiten und sie zu beschleunigen. Diese Library ermöglicht das Reservieren einer beliebigen Anzahl an Speicherbereichen (Memory-Buffer) und deren direkte Benutzung in PureBasic.

Befehlsübersicht

AllocateMemory
CompareMemory
CompareMemoryString
CopyMemory
CopyMemoryString
FreeMemory
MemoryID
MemoryStringLength
ReAllocateMemory
UseMemory

Beispiel

MemoryBank.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


AllocateMemory()

Syntax

Result = AllocateMemory(#Memory, Größe, Flags)

Beschreibung

Reserviert einen zusammenhängenden Speicherbereich mit der angegebenen Größe. Wenn der angeforderte Speicher verfügbar ist, enthält 'Result' die Startadresse des Speicherbereichs, andernfalls ist 'Result' gleich 0. 'Flags' müssen zur Zeit 0 sein, diese werden später unterstützt. Wenn vorher eine weitere Speicherbank mit der gleichen #Memory Nummer reserviert war, wird diese automatisch freigegeben.

Hinweis: Alle reservierten Speicherbereiche werden automatisch freigegeben, wenn das Programm beendet wird.

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


CompareMemory()

Syntax

Result = CompareMemory(MemoryID1, MemoryID2, Länge)

Beschreibung

Vergleicht zwei Speicherbereiche und gibt 1 zurück, wenn diese gleich sind. Andernfalls 0, wenn sie nicht übereinstimmen. Um eine gültige MemoryID zu erhalten, benutzen Sie einfach UseMemory() oder MemoryID().

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


CompareMemoryString()

Syntax

Result = CompareMemoryString(*String1, *String2 [, Modus [, Länge]])

Beschreibung

Nur für fortgeschrittene Anwender. Vergleicht zwei Strings an den angegebenen Speicheradressen. Die Strings müssen entweder "null-terminiert" sein oder der Parameter 'Länge' muss die Anzahl der zu vergleichenden Zeichen angeben. Diese Funktion kann sehr nützlich sein, um aus Performance-Gründen die Strings im Speicherbuffer zu vergleichen.

'Modus' kann einer der folgenden Werte sein:

0: String Vergleich ist "case-sensitive" (a <> A)
1: String Vergleich ist "case-insensitive" (a = A)

'Result' kann einer der folgenden Werte sein:

0: wenn String1 gleich String2 ist
-1: wenn String1 kleiner als String2 ist
1: wenn String1 größer als String2 ist

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


CopyMemory()

Syntax

Result = CopyMemory(SourceMemoryID, DestinationMemoryID, Länge)

Beschreibung

Kopiert einen Speicherbereich von 'SourceMemoryID' (der Ausgangs-Speicheradresse) mit der angegebenen Länge zur 'DestinationMemoryID' (der Ziel-Speicheradresse).

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


CopyMemoryString()

Syntax

Result = CopyMemoryString(*String [, @*DestinationMemoryID])

Beschreibung

Nur für fortgeschrittene Anwender. Kopiert den String an der angegebenen Adresse zur optionalen Zieladresse '@*DestinationMemoryID', oder - falls diese weggelassen wurde - an das Ende des aktuellen Speicherbuffers. Wenn '*DestinationMemoryID' angegeben wird, wird der interne Buffer Zeiger auf den neuen Wert zurückgesetzt. Der interne Zeiger wird nach einem Kopieren automatisch aktualisiert. Damit ist es sehr gut möglich, eine ganze Menge Strings zu kopieren und währenddessen die Kontrolle über den Zeiger zu behalten. Dieser Befehl ist speziell optimiert, um extrem schnell einen Text-Speicherbuffer zu manipulieren.

Beispiel:

*Pointer = AllocateMemory(0, 1000, 0)
CopyMemoryString("Hello", @*Pointer)
CopyMemoryString(" World") ; Dieser String wird einfach nach "Hello" im Speicherbuffer eingefügt.
*Pointer-2 ; Setzt den Zeiger um 2 Zeichen zurück (auf das 'l' von 'World')
...

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


FreeMemory()

Syntax

FreeMemory(#Memory)

Beschreibung

Gibt den zuvor mittels AllocateMemory() reservierten Speicher frei. Wird als Parameter '#Memory' gleich -1 übergeben, werden alle zuvor reservierten Speicherbereiche freigegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


MemoryID()

Syntax

Result = MemoryID()

Beschreibung

Ermittelt die ID der aktuellen Speicherbank. Dies ist die Startadresse des Speicherbereichs.

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


MemoryStringLength()

Syntax

Result = MemoryStringLength(*String)

Beschreibung

Nur für fortgeschrittene Anwender. Gibt die Länge des angegebenen null-terminierten Strings zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


ReAllocateMemory()

Syntax

Result = ReAllocateMemory(#Memory, Größe)

Beschreibung

Reserviert (erneut) einen zusammenhängenden Speicherbereich '#Memory' entsprechend der angegebenen 'Größe'. Der Inhalt des vorherigen Speichers '#Memory' wird behalten.

Hinweis: Alle reservierten Speicherbänke werden am Programmende automatisch freigegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


UseMemory()

Syntax

Result = UseMemory(#Memory)

Beschreibung

Ändert die aktuelle Speicherbank in die angegebene neue. Es wird die Startadresse der neuen Speicherbank zurückgegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Memory - Inhaltsverzeichnis


Menu

PureBasic - Menu

Einleitung

Die Menüverwaltung in PureBasic ist sehr einfach. Natürlich können Sie auch alle möglichen Parameter einsetzen.

Befehlsübersicht

AttachMenu
CloseSubMenu
CreateMenu
CreatePopupMenu
DisableMenuItem
DisplayPopupMenu
FreeMenu
MenuBar
MenuItem
MenuTitle
OpenSubMenu

Beispiel

Menu.pb
PopupMenu.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


AttachMenu()

Syntax

AttachMenu(#Menu, WindowID())

Beschreibung

Hängt das definierte Menü an das angegebene Fenster an. Um ein Menü von einem Fenster zu entfernen, müssen Sie den Befehl DetachMenu() aus der Window Library benutzen.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


CloseSubMenu()

Syntax

CloseSubMenu()

Beschreibung

Schließt das aktuelle Unter-Menü und kehrt zum vorhergehenden zurück. OpenSubMenu() muss vor diesem Befehl aufgerufen worden sein !

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


CreateMenu()

Syntax

CreateMenu(#Menu)

Beschreibung

Erstellt ein neues leeres Menü. Dieses wird damit aktuelles Menü zum Einfügen weiterer Einträge. Es ist nun möglich, Befehle wie MenuItem(), MenuBar(), etc. zu benutzen.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


CreatePopupMenu()

Syntax

CreatePopupMenu(#Menu)

Beschreibung

Erstellt ein neues leeres Popup-Menü. Es wird damit das aktuelle Menü zum Einfügen weiterer Einträge. Es ist nun möglich, Befehle wie MenuItem(), MenuBar(), etc. zu benutzen. DisplayPopupMenu() kann benutzt werden, um dieses Popup-Menü an einer beliebigen Position auf dem Bildschirm darzustellen.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


DisableMenuItem()

Syntax

DisableMenuItem(MenuItem, Status)

Beschreibung

Deaktiviert oder aktiviert den Menüeintrag 'MenuItem'. Ist der angegebene Status gleich 1, wird der Menüeintrag deaktiviert. Ist der Status gleich 0, wird der Menüeintrag aktiviert.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


DisplayPopupMenu()

Syntax

DisplayPopupMenu(#Menu, WindowID() [, x, y])

Beschreibung

Stellt ein zuvor erstelltes Popup-Menü an der aktuellen Maus-Position dar. Die (x,y) Position kann optional definiert werden. Die 'x' und 'y' Koordinaten werden in Pixel angegeben, gerechnet von der oberen linken Bildschirmecke.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


FreeMenu()

Syntax

FreeMenu(#Menu)

Beschreibung

Entfernt das angegebene Menü aus dem Speicher. Nach dem Aufrufen dieser Funktion können Sie das Menü nirgends mehr anfügen, aber Sie können die #Menu Nummer für eine weitere Menüliste nutzen.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


MenuBar()

Syntax

MenuBar()

Beschreibung

Erstellt einen Abgrenzungsbalken im aktuellen Menü.

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


MenuItem()

Syntax

MenuItem(MenuID, Text$)

Beschreibung

Erstellt einen Menü-Eintrag für das Menü. Im Text$ können Sie das spezielle '&' Zeichen benutzen, um einen bestimmten Buchstaben zu unterstreichen:

"&Datei" ergibt in Wirklichkeit: Datei

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


MenuTitle()

Syntax

MenuTitle(Title$)

Beschreibung

Erstellt einen neuen Titel-Eintrag für das Menü. Im Text$ können Sie das spezielle '&' Zeichen benutzen, um einen bestimmten Buchstaben zu unterstreichen:

"&Datei" ergibt in Wirklichkeit: Datei

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


OpenSubMenu()

Syntax

OpenSubMenu(Text$)

Beschreibung

Erstellt einen leeren Unter-Menüeintrag im aktuellen Menü. Im Text$ können Sie das spezielle '&' Zeichen benutzen, um einen bestimmten Buchstaben zu unterstreichen:

"&Datei" ergibt in Wirklichkeit: Datei

Unterstützte OS

Windows, AmigaOS, Linux

Menu - Inhaltsverzeichnis


Misc

PureBasic - Misc

Einleitung

Verschiedene unklassifizierbare Befehle.

Befehlsübersicht

Blue
Delay
GetFilePart
GetPathPart
Green
PeekBWL
PeekF
PeekS
PokeBWL
PokeF
PokeS
ProgramParameter
RGB
Random
RandomSeed
Red
RunProgram

Beispiel

Misc.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


Blue()

Syntax

Result = Blue(Farbe)

Beschreibung

Gibt den Blau-Wert einer 24 Bit RGB-Farbe zurück (zwischen 0 und 255).

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


Delay()

Syntax

Delay(Zeit)

Beschreibung

Wartet die angegebene Zeit. Diese wird in Millisekunden angegeben. Das Programm wird komplett angehalten, bis die angegebene Zeit abgelaufen ist.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


GetFilePart()

Syntax

FileName$ = GetFilePart(FullPathName$)

Beschreibung

Ermittelt den Dateinamen aus einem kompletten Dateipfad. Zum Beispiel, wenn der volle Pfad "C:\PureBasic\PB.exe" lautet, wird das Resultat "PB.exe" ergeben.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


GetPathPart()

Syntax

Path$ = GetPathPart(FullPathName$)

Beschreibung

Ermittelt das Verzeichnis aus einem kompletten Dateipfad. Zum Beispiel, wenn der volle Pfad "C:\PureBasic\PB.exe" lautet, wird das Resultat "C:\PureBasic\" ergeben.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


Green()

Syntax

Result = Green(Farbe)

Beschreibung

Gibt den Grün-Wert einer 24 Bit RGB-Farbe zurück (zwischen 0 und 255).

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


PeekBWL()

Syntax

Value.l = PeekBWL(*MemoryBuffer)

Beschreibung

Nur für fortgeschrittene Programmierer. PeekB(), PeekW(), PeekL() lesen jeweils einen Byte-Wert (1 Byte), einen Word-Wert (2 Bytes) oder einen Long-Wert (4 Bytes) von der angegebenen Speicheradresse aus.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


PeekF()

Syntax

Value.l = PeekF(*MemoryBuffer)

Beschreibung

Nur für fortgeschrittene Programmierer. PeekF() liest einen Float-Wert (4 Bytes) von der angegebenen Speicheradresse.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


PeekS()

Syntax

Text$ = PeekS(*MemoryBuffer)

Beschreibung

Nur für fortgeschrittene Programmierer. Sehr nützlich, um einen String an der angegebenen Speicheradresse auszulesen. Der String muss mit einem '0' Zeichen enden, andernfalls wird der Speicher solange ausgelesen, bis eine '0' auftritt.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


PokeBWL()

Syntax

Text$ = PokeBWL(*MemoryBuffer, Number.L)

Beschreibung

Nur für fortgeschrittene Programmierer. PokeB(), PokeW(), PokeL() schreiben jeweils einen Byte-Wert (1 Byte), einen Word-Wert (2 Bytes) oder einen Long-Wert (4 Bytes) an die angegebene Speicheradresse.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


PokeF()

Syntax

Text$ = PokeF(*MemoryBuffer, Number.f)

Beschreibung

Nur für fortgeschrittene Programmierer. PokeF() schreibt eine Float-Zahl (4 Bytes) an die angegebene Speicheradresse.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


PokeS()

Syntax

Text$ = PokeS(*MemoryBuffer, Text$)

Beschreibung

Nur für fortgeschrittene Programmierer. Schreibt einen String (einschließlich einer abschließenden '0') an die angegebene Speicheradresse.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


ProgramParameter()

Syntax

Parameter$ = ProgramParameter()

Beschreibung

Ermittelt den nächsten Parameter-String, der dem Executable beim Start übergeben wurde. Zum Beispiel:

MyProgram.exe MyText.txt /FAST "Special Mode"
Das erste Mal, wenn ProgramParameter() aufgerufen wird, gibt es "MyText.txt" zurück, beim zweiten Mal "/FAST" und beim dritten Mal "Special Mode". Sind keine (weiteren) Parameter vorhanden, wird ein leerer String zurückgegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


RGB()

Syntax

Color = RGB(Rot, Grün, Blau)

Beschreibung

Gibt den 24 Bit Farb-Wert entsprechend den Rot-, Grün- und Blau-Werten zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


Random()

Syntax

Result = Random(Maximum)

Beschreibung

Ergibt eine Zufallszahl zwischen 0 und dem angegebenen Maximal-Wert.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


RandomSeed()

Syntax

RandomSeed(Wert)

Beschreibung

Ändert den aktuellen Ausgangswert für mit Random() zurückgegebene Zufallszahlen. Hinweis: Bei jedem neuen Programmstart wird automatisch einer neuer Ausgangswert generiert. RandomSeed() ist daher nur nützlich, wenn der Programmierer immer die gleichen Zufallszahlen in der gleichen Reihenfolge wünscht.

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


Red()

Syntax

Result = Red(Farbe)

Beschreibung

Gibt den Rot-Wert einer 24 Bit RGB-Farbe zurück (zwischen 0 und 255).

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


RunProgram()

Syntax

Result = RunProgram(DateiName$, Parameter$, Flags)

Beschreibung

Startet ein externes Programm asynchron (die laufende Programmausführung wird nicht angehalten). Der 'DateiName$' sollte den kompletten Pfad enthalten. Wenn der Rückgabewert 'Result' gleich 0 ergibt, konnte das Programm nicht gestartet werden.

Mögliche Werte als Flags:
0: Keine Flags
1: Wartet bis das gestartete Programm beendet wird
2: Startet das Programm im unsichtbaren Modus

Um mehrere Optionen gleichzeitig zu benutzen, müssen Sie den '|' (OR) Operator verwenden. Ein Beispiel für ein unsichtbares Programm und Warten bis dieses beendet ist:

RunProgram(DateiName$, Parameter$, 1 | 2)

Unterstützte OS

Windows, AmigaOS, Linux

Misc - Inhaltsverzeichnis


Module

PureBasic - Module

Einleitung

PureBasic kann Standard Musik-Module abspielen, um während eines Spiels oder einer Applikation eine hübsche Hintergrundmusik zu haben. Die Module sind wohlbekannt von den Demo-Makern, da sie eine rationelle Möglichkeit darstellen, Musik auf dem Computer zu erstellen. Die zum Erstellen der Module benutzten Werkzeuge werden 'Tracker' (ProTracker, FastTracker, ImpulseTracker...) genannt. Der Vorteil von Modulen gegenüber .wav/mp3 Dateien sind ihre sehr geringe Größe, eine prinzipiell endlose Länge, die sehr schnellen Abspielroutinen, der mögliche Sprung zu einem bestimmten Musikabschnitt - passend zur gerade laufenden Action auf dem Bildschirm, ect... Es ist natürlich möglich, Standard-Sound und Modul-Sound zu mischen, um beide gleichzeitig abspielen zu können.

Unter Windows wird das MIDAS Soundsystem benutzt, um ein perfektes Abspielen und Unterstützung für verschiedene Tracker sicherzustellen. Vergessen Sie nicht, die midas11.dll in ihr endgültiges Programmpaket zu integrieren, da sie keine Standard DLL ist. Falls vorhanden wird DirectX benutzt, andernfalls die Standard Soundausgabe.

Befehlsübersicht

FreeModule
GetModulePosition
GetModuleRow
InitModule
LoadModule
PlayModule
SetModulePosition
StopModule

Beispiel

Module.pb

Unterstützte OS

Windows, AmigaOS

Referenz-Handbuch - Inhaltsverzeichnis


FreeModule()

Syntax

FreeModule(#Module)

Beschreibung

Das angegebene Modul, welches zuvor mittels dem LoadModule() Befehl geladen wurde, wird angehalten und aus dem Speicher entfernt. Sobald ein Modul freigegeben wurde, kann es nicht mehr abgespielt werden.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


GetModulePosition()

Syntax

Position = GetModulePosition()

Beschreibung

Gibt die aktuelle Pattern-Position des laufenden Modules zurück. Der erste Pattern beginnt bei 0.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


GetModuleRow()

Syntax

Row = GetModuleRow()

Beschreibung

Gibt die Reihen-Position in dem geraden abgespielten Pattern zurück. Die erste Reihe (row) beginnt bei 0.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


InitModule()

Syntax

Result.l = InitModule(#Module)

Beschreibung

Initialisiert die gesamte Modul Programmierumgebung. Wenn 'Result' 0 ergibt, kann kein Modul auf diesem Computer abgespielt werden oder die Soundausgabe (sound device) ist gerade beschäftigt. Diese Funktion muss immer aufgerufen werden, bevor irgendein anderer Sound-Befehl benutzt wird, und es sollte auch das zurückgegebene Ergebnis überprüft werden. Wenn das Initialisieren der Modul-Umgebung fehlschlägt, ist es absolut notwendig, alle weiteren Aufrufe von Modul-Befehlen zu deaktivieren.

Mögliche Fehlerursachen unter MS Windows: Midas11.dll wurde nicht gefunden oder es ist keine Soundkarte verfügbar. Wenn Ihr Programm unter NT4.0 laufen soll, markieren sie unbedingt 'NT4.0 kompatible Executable' in den Compiler-Optionen. WICHTIG: Der Befehl InitSound() muss vor dem Benutzen von Befehlen aus der Module Library aufgerufen werden.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


LoadModule()

Syntax

Result = LoadModule(#Module, "DateiName")

Beschreibung

Lädt das angegebene Modul in den Speicher. Ergibt 'Result' nicht 0, wurde das Modul korrekt geladen und ist bereit zum Abspielen mittels PlayModule(). Andernfalls ist das Laden des Modules fehlgeschlagen. Wenn zuvor ein anderes Modul unter der gleichen #Module Nummer geladen wurde, wird dieses automatisch freigegeben. Das Modul kann in den folgenden Formaten vorliegen: ProTracker (4 und 8 Kanäle), FastTracker (bis zu 32 Kanäle, 16 Bit-Qualität) und ImpulseTracker.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


PlayModule()

Syntax

PlayModule(#Module)

Beschreibung

Beginnt das Abspielen des angegebenen Modules, welches zuvor mittels dem LoadModule() Befehl geladen wurde.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


SetModulePosition()

Syntax

SetModulePosition(Position)

Beschreibung

Ändert die aktuelle Pattern-Position des laufenden Modules auf die neu angegebene Position. Der erste Pattern beginnt bei 0.

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


StopModule()

Syntax

StopModule()

Beschreibung

Stoppt das aktuellle Modul (sofern es gerade abgespielt wird).

Unterstützte OS

Windows, AmigaOS

Module - Inhaltsverzeichnis


Mouse

PureBasic - Mouse

Einleitung

PureBasic bietet vollständigen Zugriff auf die am Computer angeschlossenen Mäuse. Es unterstützt Standard-Mäuse mit bis zu 3 Knöpfen. Diese Library ist optimiert und benutzt "low-level" (hardware-nahe) Funktionen, speziell zur Benutzung in Spielen. Benutzen Sie diese Library nicht in einer regulären Applikation. Es wird die DirectX Technologie verwendet.

Befehlsübersicht

ExamineMouse
InitMouse
MouseButton
MouseDeltaX
MouseDeltaY
MouseWheel
MouseX
MouseY
ReleaseMouse

Beispiel

Mouse.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ExamineMouse()

Syntax

Result = ExamineMouse()

Beschreibung

Aktualisiert den Maus-Status. Wird 0 zurückgegeben, kann die Maus nicht benutzt werden. Dieser Befehl sollte vor MouseDeltaX(), MouseDeltaY(), MouseX(), MouseY() oder MouseButton() benutzt werden. Zur Zeit wird nur die Standard-Maus unterstützt.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


InitMouse()

Syntax

Result = InitMouse()

Beschreibung

Initialisiert die Programmumgebung zur weiteren Benutzung der Maus-Befehle. Sie müssen diese Funktion vor allen anderen Befehlen dieser Library aufrufen. Ergibt 'Result' gleich 0, ist keine Maus verfügbar... Dieser Befehl versucht, DirectX (v3.0 mit NT4.0 Kompatibilität oder sonst v7.0) zu öffnen. Wenn dies also fehlschlägt, liegt es möglicherweise an einer zu alten oder ganz fehlenden Version von DirectX.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


MouseButton()

Syntax

Result = MouseButton(ButtonNumber)

Beschreibung

Gibt 0 zurück, wenn der angegebene Mausknopf 'ButtonNumber' nicht gedrückt wird, andernfalls ist der Knopf gedrückt. Eine beliebige Anzahl an Knöpfen kann zur gleichen Zeit gedrückt sein. ExamineMouse() muss vor dieser Funktion aufgerufen werden, um den aktuellen Status der Mausknöpfe zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


MouseDeltaX()

Syntax

Result = MouseDeltaX()

Beschreibung

Gibt die Mausbewegung auf der X-Achse (in Pixel) seit dem letzten Aufruf dieser Funktion zurück. Dies bedeutet, dass das Ergebnis entweder ein negativer oder ein positiver Wert sein kann, je nachdem ob die Maus seit dem letzten Aufruf nach links oder rechts bewegt wurde. ExamineMouse() muss vor dieser Funktion aufgerufen werden, um die aktuelle Maus-Position zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


MouseDeltaY()

Syntax

Result = MouseDeltaY()

Beschreibung

Gibt die Mausbewegung auf der Y-Achse (in Pixel) seit dem letzten Aufruf dieser Funktion zurück. Dies bedeutet, dass das Ergebnis entweder ein negativer oder ein positiver Wert sein kann, je nachdem ob die Maus seit dem letzten Aufruf nach oben oder unten bewegt wurde. ExamineMouse() muss vor dieser Funktion aufgerufen werden, um die aktuelle Maus-Position zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


MouseWheel()

Syntax

Result = MouseWheel()

Beschreibung

Gibt die Anzahl der seit dem letzten Aufruf erfolgten "Ticks" des Mausrads zurück. Der Wert ist positiv, wenn das Rad vorwärts gedreht wurde und negativ, wenn das Rad rückwärts gedreht wurde. Der Befehl ExamineMouse() muss vor dieser Funktion aufgerufen werden, um die Mausinformationen zu aktualisieren.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


MouseX()

Syntax

Result = MouseX()

Beschreibung

Gibt die aktuelle Maus-Position (in Pixel) auf der X-Achse des aktuellen Bildschirms zurück. ExamineMouse() muss vor dieser Funktion aufgerufen werden, um die aktuelle Maus-Position zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


MouseY()

Syntax

Result = MouseY()

Beschreibung

Gibt die aktuelle Maus-Position (in Pixel) auf der Y-Achse des aktuellen Bildschirms zurück. ExamineMouse() muss vor dieser Funktion aufgerufen werden, um die aktuelle Maus-Position zu ermitteln.

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


ReleaseMouse()

Syntax

Result = ReleaseMouse()

Beschreibung

Gibt ("unlock") die Maus zur Benutzung unter dem Standard-OS frei. Dies geschieht typischerweise nach Überprüfung des Ergebnisses von IsScreenActive().

Unterstützte OS

Windows, AmigaOS

Mouse - Inhaltsverzeichnis


Movie

PureBasic - Movie

Einleitung

PureBasic bietet sehr einfache aber trotzdem mächtige Befehle, um das Abspielen eines Films (Movie) innerhalb einer Applikation oder eines Spiels zu integrieren.

Nur für Windows: da es die DirectX Technologie benutzt, kann jede Art von Movies (oder besser von Medien) mittels dieser Library abgespielt werden: AVI, MPG, DivX, Mp3 etc..

Befehlsübersicht

FreeMovie
InitMovie
LoadMovie
MovieAudio
MovieHeight
MovieInfo
MovieLength
MovieSeek
MovieStatus
MovieWidth
PauseMovie
PlayMovie
ResizeMovie
ResumeMovie
StopMovie
UseMovie

Beispiel

Movie.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


FreeMovie()

Syntax

FreeMovie(#Movie)

Beschreibung

Gibt das angegebene #Movie frei und entfernt es aus dem Speicher. Das #Movie ist nicht mehr gültig.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


InitMovie()

Syntax

Result = InitMovie()

Beschreibung

Initialisiert die Programmumgebung für Movies zur späteren Benutzung. Sie müssen diese Funktion vor allen anderen Befehlen aus dieser Library aufrufen. Dieser Befehl versucht, DirectX (v3.0 mit NT4.0 Kompatibilität oder sonst v7.0) zu öffnen. Wenn dies also fehlschlägt, liegt es möglicherweise an einer zu alten oder ganz fehlenden Version von DirectX.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


LoadMovie()

Syntax

Result = LoadMovie(#Movie, DateiName$)

Beschreibung

Versucht ein Movie zu öffnen und es für das spätere Abspielen vorzubereiten. Ist das Ergebnis 'Result' gleich 0, konnte das Movie nicht geöffnet werden (Format wird nicht unterstützt oder Datei wurde nicht gefunden), andernfalls ist alles ok. Dieses Movie wird zum aktuell benutzten Movie. PlayMovie() kann benutzt werden, um das Abspielen zu starten.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieAudio()

Syntax

MovieAudio(Volume, Balance)

Beschreibung

Kontrolliert den Audio-Stream des aktuellen Movies. Volume (Lautstärke) und Balance können während des Abspielens verändert werden. Veränderungen werden sofort wirksam. Der Volume Bereich geht von 0 bis 100 (100 ist am lautesten). Balance reicht von -100 bis 100 (-100 ist vollständig rechts, 0 ist Mittel (normaler Modus) und 100 ist vollständig links).

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieHeight()

Syntax

Höhe = MovieHeight()

Beschreibung

Gibt die Höhe (in Pixel) des aktuellen Movies zurück. Ist das Ergebnis gleich -1, wurde kein (kompatibler) Video-Stream gefunden. Der Audio-Stream kann trotzdem abgespielt werden. Die ist besonders nützlich für das Abspielen von MP3-Dateien mit den Movie-Befehlen (!).

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieInfo()

Syntax

Result = MovieInfo(Flags)

Beschreibung

Gibt zusätzliche Informationen über das aktuelle Movie zurück.

Derzeit werden folgende Werte als 'Flags' unterstützt:
0: gibt die Anzahl der "Frames pro Sekunde" (*1000) zurück.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieLength()

Syntax

Length = MovieLength()

Beschreibung

Gibt die Länge (in Frames) des aktuellen Movies zurück.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieSeek()

Syntax

Result = MovieSeek(Frame)

Beschreibung

Ändert die aktuelle Movie-Position auf das angegebene 'Frame'.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieStatus()

Syntax

Result = MovieStatus()

Beschreibung

Ermittelt den Status des aktuellen Movies.

'Result' kann einer der folgenden Werte sein:

-1: Movie ist unterbrochen ("paused").
0: Movie ist angehalten ("stopped").
> 0: Movie wird abgespielt. Der zurückgegebene Wert ist die Nummer des gerade angezeigten Frames.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


MovieWidth()

Syntax

Breite = MovieWidth()

Beschreibung

Gibt die Breite (in Pixel) des aktuellen Movies zurück. Ist das Ergebnis gleich -1, wurde kein (kompatibler) Video-Stream gefunden. Der Audio-Stream kann trotzdem abgespielt werden. Die ist besonders nützlich für das Abspielen von MP3-Dateien mit den Movie-Befehlen (!).

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


PauseMovie()

Syntax

PauseMovie()

Beschreibung

Hält das Abspielen des aktuellen Movies an. Das Abspielen kann mittels dem ResumeMovie() Befehl fortgesetzt werden.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


PlayMovie()

Syntax

PlayMovie(#Movie, WindowID)

Beschreibung

Startet das Abspielen eines zuvor mittels LoadMovie() geladenen Movies auf dem angegebenen Fenster 'WindowID'. Die 'WindowID' kann einfach mittels dem WindowID()Befehl aus der Windows Library ermittelt werden. Der Befehl ResizeMovie() kann benutzt werden, um die Größe und die Position des Movies auf diesem Fenster zu verändern (um z.B. nicht die volle Fenstergröße zu benutzen).

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


ResizeMovie()

Syntax

ResizeMovie(x, y, Breite, Höhe)

Beschreibung

Verändert die Größe und die Position des Anzeigebereichs vom aktuellen Movie auf dem Movie-Fenster. Dies ist besonders nützlich vor dem Abspielen mittels PlayMovie().

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


ResumeMovie()

Syntax

ResumeMovie()

Beschreibung

Setzt das Abspielen des aktuellen Movies fort, nach einem PauseMovie() Befehl.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


StopMovie()

Syntax

StopMovie()

Beschreibung

Stoppt (endgültig) das Abspielen des aktuellen Movies. Wird das Movie erneut abgespielt, startet es am Anfang.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


UseMovie()

Syntax

UseMovie(#Movie)

Beschreibung

Macht das angegebene #Movie zum aktuellen Movie.

Unterstützte OS

Windows

Movie - Inhaltsverzeichnis


Network

PureBasic - Network

Einleitung

Netzwerke sind auf der ganzen Welt weit verbreitet und erlauben die einfache Kommunikation zwischen Computern. PureBasic unterstützt das offizielle Internet-Protokoll zum Datenaustausch: TCP/IP. Diese Bibliothek erlaubt Ihnen das Erstellen von Applikationen und Spielen, die dieses Protokoll mittels des allseits bekannten "Client-Server-Modells" unterstützen. Mit diesen Befehlen ist es möglich, jede Art von Applikationen mit Internetanbindung (Browser, Web-Server, FTP-Client...) oder schnellen 'Multiplayer' Spielen zu schreiben.

Befehlsübersicht

CloseNetworkConnection
CloseNetworkServer
CreateNetworkServer
IPAddressField
InitNetwork
MakeIPAddress
NetworkClientEvent
NetworkClientID
NetworkServerEvent
OpenNetworkConnection
ReceiveNetworkData
ReceiveNetworkFile
ReceiveNetworkString
SendNetworkData
SendNetworkFile
SendNetworkString

Beispiel

NetworkClient.pb
NetworkServer.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CloseNetworkConnection()

Syntax

CloseNetworkConnection()

Beschreibung

Schließt die aktuelle Client-Verbindung und sendet eine Meldung an den Server.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


CloseNetworkServer()

Syntax

CloseNetworkServer()

Beschreibung

Schließt den aktuell laufenden Server. Alle mit diesem Server verbundenen Clients werden automatisch entfernt. Der Port wird freigegeben und kann wieder von einer anderen Applikation genutzt werden.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


CreateNetworkServer()

Syntax

Result = CreateNetworkServer(Port)

Beschreibung

Erstellt einen neuen Netzwerk-Server auf dem lokalen Computer an dem angegebenen Port. Die Port-Werte reichen von 6000 bis 7000 (dies ist der empfohlene Bereich, in Wirklichkeit können die Werte im Bereich von 0 bis 16000 liegen). Eine beliebige Anzahl Server kann gleichzeitig auf demselben Computer laufen, jedoch nicht mit derselben Port-Nummer. Ergibt 'Result' gleich 0, konnte der Server nicht eingerichtet werden (die Port-Nummer wird bereits benutzt). Andernfalls wurde der Server korrekt eingerichtet und ist bereit zur Benutzung.

Port: Port-Nummer für diesen Server

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


IPAddressField()

Syntax

Result = IPAddressField(IPAdresse, Feld)

Beschreibung

Gibt den Wert des angegebenen Felds der angegebenen IP-Adresse zurück. 'IpAdresse' kann ein mittels MakeIPAddress() erstellter Wert sein. 'Feld' kann zwischen 0 und 3 (von rechts nach links) liegen. Zum Beispiel: "127.0.0.1": das Feld 0 ist gleich '1' und das Feld 3 ist gleich '127'. Dieser Befehl ist insbesondere nützlich in Zusammenhang mit folgenden Funktionen:

- IPAddressGadget()- MakeIPAddress()

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


InitNetwork()

Syntax

Result = InitNetwork()

Beschreibung

Dieser Befehl muss vor allen anderen Befehlen der Network Library aufgerufen werden. Ergibt 'Result' gleich 0, ist kein TCP/IP-Stack auf dem System verfügbar, andernfalls wurde alles korrekt initialisiert.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


MakeIPAddress()

Syntax

Result = MakeIPAddress(Feld3, Feld2, Feld1, Feld0)

Beschreibung

Gibt den entsprechenden Wert der mit dieser Funktion spezifierten IP-Adresse zurück. Jedes Feld kann einen Wert zwischen 0 und 255 haben. Die Befehl ist besonders nützlich zusammen mit:

- IPAddressGadget()

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


NetworkClientEvent()

Syntax

Result = NetworkClientEvent()

Beschreibung

Gibt 0 zurück, wenn keine Informationen (oder Daten) über den Client-Port empfangen wurden, andernfalls liegen welche vor, die verarbeitet werden sollten. Der Rückgabewert zeigt an, was gerade passierte:

0 : Nichts ist passiert
2 : Roh-Daten wurden empfangen (können gelesen werden mittels ReceiveNetworkData())
3 : Eine Datei wurde empfangen (kann gelesen werden mittels RecieveNetworkFile())
5 : Ein String wurde empfangen (kann gelesen werden mittels RecieveNetworkString())

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


NetworkClientID()

Syntax

ClientID = NetworkClientID()

Beschreibung

Dieser Befehl wird nur auf der Server-Seite benötigt. Er ermöglicht die Ermittlung des Clients, der die Daten gesendet hat.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


NetworkServerEvent()

Syntax

Result = NetworkServerEvent()

Beschreibung

Gibt 0 zurück, wenn keine Informationen (oder Daten) über den Server-Port empfangen wurden, andernfalls liegen welche vor, die verarbeitet werden sollten. Der Rückgabewert zeigt an, was gerade passierte:

0 : Nichts ist passiert
1 : Ein neuer Client wurde mit dem Server verbunden
2 : Roh-Daten wurden empfangen (können gelesen werden mittels ReceiveNetworkData())
3 : Eine Datei wurde empfangen (kann gelesen werden mittels RecieveNetworkFile())
4 : Ein Client hat den Server verlassen (Verbindungstrennung)
5 : Ein String wurde empfangen (kann gelesen werden mittels RecieveNetworkString())

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


OpenNetworkConnection()

Syntax

Result = OpenNetworkConnection(ServerName$, Port)

Beschreibung

Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net"). Wenn die Verbindung vom Server gewährt wurde, ist 'Result' nicht NULL, andernfalls ist der Verbindungsaufbau fehlgeschlagen.

ServerName$: Name oder IP-Adresse des Computers, der den Server hostet, mit dem verbunden werden soll.
Port: Port-Nummer des laufenden Servers (siehe CreateNetworkServer()).

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


ReceiveNetworkData()

Syntax

ReceiveNetworkData(ClientID, *DataBuffer, Länge)

Beschreibung

Empfängt die Roh-Daten vom angegebenen Client. Dieser Befehl kann von beiden, Client- und Server-Applikationen, genutzt werden. Auf der Server-Seite ist 'ClientID' der Client, welcher die Daten gesendet hat (die ClientID kann einfach mittels NetworkClientID() ermittelt werden). Auf der Client-Seite benutzen Sie einfach '0' als 'ClientID', um die gerade im Netzwerk befindlichen Daten zu erhalten. Die Daten werden in den angegebenen Speicherbereich '*DataBuffer' gelesen. Ist 'Result' gleich 'Länge', dann sind noch mehr Daten einzulesen.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


ReceiveNetworkFile()

Syntax

ReceiveNetworkFile(ClientID, DateiName$)

Beschreibung

Empfängt eine Datei vom angegebenen Client. Dieser Befehl kann von beiden, Client- und Server-Applikationen, genutzt werden. Auf der Server-Seite ist 'ClientID' der Client, welcher die Datei gesendet hat (die ClientID kann einfach mittels NetworkClientID() ermittelt werden). Auf der Client-Seite benutzen Sie einfach '0' als 'ClientID', um die gerade im Netzwerk befindliche Datei zu erhalten. Die Datei muss mittels des speziellen SendNetworkFile()Befehls gesendet worden sein.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


ReceiveNetworkString()

Syntax

String$ = ReceiveNetworkString(ClientID)

Beschreibung

Empfängt den String vom angegebenen Client. Dieser Befehl kann von beiden, Client- und Server-Applikationen, genutzt werden. Auf der Server-Seite ist 'ClientID' der Client, welcher den String gesendet hat (die ClientID kann einfach mittels NetworkClientID() ermittelt werden). Auf der Client-Seite benutzen Sie einfach '0' als 'ClientID', um den gerade im Netzwerk befindlichen String zu erhalten. Der String muss mittels des speziellen SendNetworkString()Befehls gesendet worden sein.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


SendNetworkData()

Syntax

SendNetworkData(ClientID, *MemoryBuffer, Länge)

Beschreibung

Sendet Roh-Daten zum angegebenen Client. Dieser Befehl kann von beiden, Client- und Server-Applikationen, genutzt werden. Auf der Server-Seite ist 'ClientID' der Client, welcher die Daten empfangen soll. Auf der Client-Seite benutzen Sie einfach '0' als 'ClientID', um die Daten über die aktuelle Verbindung (aufgebaut mittels OpenNetworkConnection()) zu senden.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


SendNetworkFile()

Syntax

SendNetworkFile(ClientID, DateiName$)

Beschreibung

Sendet eine komplette Datei zum angegebenen Client. Dieser Befehl kann von beiden, Client- und Server-Applikationen, genutzt werden. Auf der Server-Seite ist 'ClientID' der Client, welcher die Daten empfangen soll. Auf der Client-Seite benutzen Sie einfach '0' als 'ClientID', um die Daten über die aktuelle Verbindung (aufgebaut mittels OpenNetworkConnection()) zu senden. Die Datei wird mittels sehr spezieller (und sicherer) Methoden gesendet. Sie muss mittels dem RecieveNetworkFile() Befehl empfangen werden. Dieser Befehl blockiert die Programmausführung bis die komplette Datei gesendet wurde.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


SendNetworkString()

Syntax

SendNetworkString(ClientID, String$)

Beschreibung

Sendet einen String zum angegebenen Client. Dieser Befehl kann von beiden, Client- und Server-Applikationen, genutzt werden. Auf der Server-Seite ist 'ClientID' der Client, welcher die Daten empfangen soll. Auf der Client-Seite benutzen Sie einfach '0' als 'ClientID', um die Daten über die aktuelle Verbindung (aufgebaut mittels OpenNetworkConnection()) zu senden. Der String wird mittels sehr spezieller (und sicherer) Methoden gesendet. Er muss mittels dem RecieveNetworkString() Befehl empfangen werden.

Unterstützte OS

Windows, AmigaOS, Linux

Network - Inhaltsverzeichnis


Packer

PureBasic - Packer

Einleitung

Die Packer Library bietet eine Reihe effiziente Befehle zum Packen und Entpacken von Daten ("Komprimieren/Dekomprimieren"). Die Pack-/Entpack-Routinen basieren auf dem excellenten JCalG1-Algorhythmus und sind in PureBasic integriert (keine externen DLLs werden benötigt).

Befehlsübersicht

AddPackFile
AddPackMemory
ClosePack
CreatePack
NextPackFile
OpenPack
PackFileSize
PackMemory
PackerCallback
UnpackMemory

Beispiel

Packer.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


AddPackFile()

Syntax

Result = AddPackFile(DateiName$)

Beschreibung

Komprimiert die angegebene Datei und fügt diese zur aktuellen Pack-Datei, die zuvor mit CreatePack() geöffnet wurde, hinzu. Das Hinzufügen einer großen Datei kann eine längere Zeit dauern, aber die Entpackgeschwindigkeit ist dafür sehr sehr schnell (nahezu sofort) und die Packrate ist sehr gut.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


AddPackMemory()

Syntax

Result = AddPackMemory(Speicheradresse, Länge)

Beschreibung

Komprimiert den angegebenen Speicherbereich und fügt diesen zur aktuellen Pack-Datei, die zuvor mit CreatePack() geöffnet wurde, hinzu. Das Hinzufügen eines großen Speicherbereichs kann eine längere Zeit dauern, aber die Entpackgeschwindigkeit ist dafür sehr sehr schnell (nahezu sofort) und die Packrate ist sehr gut.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


ClosePack()

Syntax

Result = ClosePack()

Beschreibung

Schliesst eine zuvor mittels OpenPack() oder CreatePack() geöffnete Pack-Datei. Hinweis: PureBasic schliesst am Programmende automatisch alle noch offenen Pack-Dateien.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


CreatePack()

Syntax

Result = CreatePack(DateiName$)

Beschreibung

Erstellt eine neue leere Pack-Datei. Ist das Ergebnis 'Result' gleich 0, konnte die Pack-Datei nicht erstellt werden. Die folgenden Dateien können benutzt werden, um Daten zu einer Pack-Datei hinzuzufügen:

AddPackFile(): Hinzufügen und Komprimieren einer ganzen Datei.
AddPackMemory(): Hinzufügen und Komprimieren eines Speicherbereichs.

Sobald alle Schreiboperationen abgeschlossen wurden, sollte ClosePack() aufgerufen werden. Hinweis: PureBasic schliesst am Programmende automatisch alle noch offenen Pack-Dateien.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


NextPackFile()

Syntax

MemoryAddress = NextPackFile()

Beschreibung

Liest und entpackt die nächste gefundene Datei in der aktuellen Pack-Datei, die zuvor mittels OpenPack() geöffnet wurde. Die zurückgegebene Speicheradresse wird geteilt ('shared') und sollte nie vom Programmierer freigegeben werden. Um die Größe des Speichers (d.h. die Größe der entpackten Datei) zu ermitteln, benutzen Sie PackFileSize().

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


OpenPack()

Syntax

Result = OpenPack(DateiName$)

Beschreibung

Öffnet eine zuvor mittels CreatePack() erstellte Pack-Datei. Ist das Ergebnis 'Result' gleich 0, konnte die Pack-Datei nicht geöffnet werden. NextPackFile() wird benutzt, um Daten aus der Pack-Datei zu erhalten und zu entpacken.

Sobald alle Leseoperationen abgeschlossen wurden, sollte ClosePack() aufgerufen werden. Hinweis: PureBasic schliesst am Programmende automatisch alle noch offenen Pack-Dateien.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


PackFileSize()

Syntax

Size = PackFileSize()

Beschreibung

Ermittelt die Größe der aktuell (nach einem NextPackFile()) zu entpackenden Datei.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


PackMemory()

Syntax

Result = PackMemory(SourceMemoryID, DestinationMemoryID, SourceLength)

Beschreibung

Packt (komprimiert) den Inhalt des Ausgangsspeicherbereichs 'SourceMemoryID' mit der Länge 'SourceLength' in den Zielspeicherbereich 'DestinationMemoryID'. Der Zielspeicherbereich muss mindestens die Länge des Ausgangsspeicherbereichs + 8 haben. Ergibt 'Result' gleich 0, ist das Packen fehlgeschlagen, andernfalls enthält es die komprimierte Größe des Zielbereichs. Die komprimierten Daten können mittels UnpackMemory() wieder entpackt werden. Für fortgeschrittene Benutzer, kann ein Callback zum Verfolgen des Pack-Prozesses mittels PackerCallback() hinzugefügt werden. Speicherbereiche können einfach mittels dem AllocateMemory()Befehl reserviert werden.

Hinweis :

Der Kompressions-Algorhythmus ist derzeit sehr langsam, ergibt aber sehr gute Resultate (besser als das .ZIP Format). Und das Beste daran: das Entpacken geht wahnsinnig schnell (viel schneller als .ZIP).

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


PackerCallback()

Syntax

PackerCallback(@Procedure())

Beschreibung

Fügt einen "Callback" beim Komprimieren von Daten hinzu. Da das Komprimieren sehr langsam abläuft, ist damit das regelmäßige Aufrufen einer Prozedur zum Verfolgen des Pack-Prozesses möglich. Die Zeit zwischen zwei Aufrufen ist nicht durch den Benutzer definierbar, sie wird automatisch kalkuliert. Diese Funktion ist nur für fortgeschrittene Programmierer.

Der Callback muss folgende Form haben:

Procedure CompressCallback(SourcePosition, DestinationPosition)

EndProcedure

SourcePosition: Aktuelle Position, in Byte, im Ausgangsbuffer (unkomprimiert)
DestinationPosition: Aktuelle Position, in Byte, im Zielbuffer (komprimiert)

Um das Komprimieren fortzusetzen, muss die Prozedur 1 zurückgeben. Um sie abzubrechen, geben Sie einfach 0 zurück.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


UnpackMemory()

Syntax

Result = UnpackMemory(SourceMemoryID, DestinationMemoryID)

Beschreibung

Entpackt einen zuvor (mit PackMemory()) komprimierten Speicherbereich 'SourceMemoryID' in den Zielspeicherbereich 'DestinationMemoryID'.

Hinweis :

Das Dekomprimieren ist sehr sehr schnell, anders als das Komprimieren.

Unterstützte OS

Windows

Packer - Inhaltsverzeichnis


Palette

PureBasic - Palette

Einleitung

Paletten können nur auf Bildschirmen mit 256 Farben (oder weniger) genutzt werden und erlauben, die angezeigten Farben zu 'mappen' (einzuteilen). Es ist möglich, jeder Farbe (benannt mit 0 bis 255) eine bestimmte RGB-Farbe zuzuweisen, welche aus einer 24 Bit-Palette (16 Millionen Farben) ausgewählt wurde. Der Vorteil hierbei ist groß, da alle Pixel einer Farbe einfach durch mit Änderung ihrer zugewiesenen Farbe verändert werden können. Dies erlaubt sehr schnelles Paletten-Cycling (Farbwechsel), Fade-In (Einblenden), Fade-Out (Ausblenden) und andere wohlbekannte Effekte.

Befehlsübersicht

CreatePalette
DisplayPalette
FreePalette
GetPaletteColor
InitPalette
LoadPalette
SetPaletteColor
UsePalette

Beispiel

Palette.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CreatePalette()

Syntax

Result = CreatePalette(#Palette)

Beschreibung

Erstellt eine neue, leere 256 Farben Palette. Die Palette wird mit der Farbe 0 initialisiert. Ist 'Result' gleich 0, ist die Erstellung der #Palette fehlgeschlagen. Ein vorher bestehendes Palettenobjekt mit der ID #Palette wird automatisch freigegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


DisplayPalette()

Syntax

DisplayPalette(#Palette)

Beschreibung

Zeigt die angegebene #Palette auf dem aktuellen Bildschirm an.

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


FreePalette()

Syntax

FreePalette(#Palette)

Beschreibung

Gibt den von der angegebenen #Palette reservierten Speicher frei.

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


GetPaletteColor()

Syntax

Color = GetPaletteColor(Index)

Beschreibung

Gibt die RGB-Farbe am angegebenen Index der aktuellen Palette zurück. Um die Rot-, Grün- und Blau-Bestandteile der Farbe zu erhalten, benutzen Sie die Befehle Red(), Green() und Blue().

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


InitPalette()

Syntax

Result = InitPalette(#NumPaletteMax)

Beschreibung

Initialisiert die gesamte Paletten-Programmierumgebung zur späteren Benutzung. Sie müssen diese Funktion am Anfang Ihres Sourcecodes aufrufen, wenn Sie die Paletten-Befehle benutzen möchten. Ist Result gleich 0, ist das Initialisieren fehlgeschlagen und keiner der Paletten-Befehle kann benutzt werden. Falls unter Windows das Initialisieren fehlschlägt, liegt dies möglicherweise am nicht verfügbaren DirectX 7 (oder DirectX 3.0 mit NT4.0 Kompatibilität).

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


LoadPalette()

Syntax

Result = LoadPalette(#Palette, DateiName$)

Beschreibung

Lädt eine Palette aus einer Standard BMP Datei (ausschließlich 256 Farben-Bilder). Die Palette wird mit den in der Datei gefundenen Werten initialisiert. Wurde die Palette korrekt geladen, ist die Ergebnis-Variable (Result) nicht 0, andernfalls trat ein Fehler auf.

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


SetPaletteColor()

Syntax

SetPaletteColor(Index, Farbe)

Beschreibung

Ändert die RGB-Farbe am angegebenen Index der aktuellen Palette. Um eine gültige RGB-Farbe zu erhalten, benutzen Sie den RGB() Befehl oder die folgende Formel (schneller):

RGBColorValue = Red + Green << 8 + Blue << 16

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


UsePalette()

Syntax

UsePalette(#Palette)

Beschreibung

Ändert die aktuell zu benutzende #Palette.

Unterstützte OS

Windows, AmigaOS, Linux

Palette - Inhaltsverzeichnis


Preference

PureBasic - Preference

Einleitung

Preference ("Voreinstellungs-") Dateien beinhalten vom Anwender definierte Programmparameter, die auf Disk gespeichert und bei einem erneuten Programmstart wieder eingelesen werden (wie die '.INI' Dateien unter Windows zum Beispiel). PureBasic bietet die Möglichkeit, hierarchische Preference-Dateien zu erstellen, die sehr einfach auf allen Computerplattformen einsetzbar sind. Das Dateiformat ist in ASCII gehalten, mit einer Einstellung pro Zeile (Benutzung des 'Schlüsselwort=Wert' Syntax). Gruppen können zur besserene Lesbarkeit erstellt werden.

Befehlsübersicht

ClosePreference
CreatePreferences
OpenPreferences
PreferenceComment
PreferenceGroup
ReadPreferenceFloat
ReadPreferenceLong
ReadPreferenceString
WritePreferenceFloat
WritePreferenceLong
WritePreferenceString

Beispiel

Preference.pb

Unterstützte OS

Windows, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ClosePreference()

Syntax

ClosePreference()

Beschreibung

Schliesst eine zuvor mit OpenPreferences() geöffnete oder mit CreatePreferences()erstellte Preference-Datei.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


CreatePreferences()

Syntax

Result = CreatePreferences(DateiName$)

Beschreibung

Erstellt eine neue leere Preference-Datei. Existiert diese Datei bereits, so wird diese gelöscht. Wird als Ergebnis 'Result' gleich 0 zurückgegeben, konnte die Datei nicht erstellt werden. Sobald die Datei erfolgreich erstellt wurde, können folgende Befehle zum Schreiben von Daten genutzt werden: WritePreferenceString(), WritePreferenceLong(), WritePreferenceFloat(), PreferenceGroup() und PreferenceComment().

Sobald alle Schreib-Operationen erfolgten, wird ClosePreference() zum Schließen der Preference-Datei genutzt.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


OpenPreferences()

Syntax

Result = OpenPreferences(DateiName$)

Beschreibung

Öffnet eine bereits existierende Preference-Datei. Ist das Ergebnis 'Result' gleich 0, dann konnte die Datei nicht geöffnet werden. Wenn auch die Datei nicht geöffnet werden konnte, kann der Programmierer trotzdem die Lese-Befehle nutzen, die dann jeweils die spezifierten Standardwerte zurückgeben. Dies ist sehr nützlich, um in einem Schritt die Programmvariablen zu initialisieren. Die folgenden Befehle können zum Lesen von Daten genutzt werden: ReadPreferenceString(), ReadPreferenceLong(), ReadPreferenceFloat() und PreferenceGroup().

Sobald alle Lese-Operationen erfolgten, wird ClosePreference() zum Schließen der Preference-Datei genutzt.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


PreferenceComment()

Syntax

Result = PreferenceComment(Text$)

Beschreibung

Schreibt eine neue Kommentar-Zeile in die gerade erstellte Preference-Datei.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


PreferenceGroup()

Syntax

Result = PreferenceGroup(Name$)

Beschreibung

Befindet sich die Preference-Datei im Schreib-Modus (nach einem CreatePreferences() Befehl), dann wird eine neue Gruppe in der Form: [GruppenName$] erstellt. Alle folgenden Schreib-Operationen beziehen sich dann auf diese Gruppe.

Befindet sich die Preference-Datei im Lese-Modus (nach einem OpenPreferences() Befehl), dann wird der aktuelle Lesezeiger auf den Start der angegebenen Gruppe verschoben. Alle folgenden Lese-Operationen sind dann auf diese Gruppe beschränkt.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


ReadPreferenceFloat()

Syntax

Result.f = ReadPreferenceFloat(Keyword$, StandardWert.f)

Beschreibung

Versucht den zum Schlüsselwort 'Keyword$' gehörenden Wert zu lesen. Wenn PreferenceGroup()benutzt wurde, dann beschränkt sich die Suche auf die aktuelle Gruppe. Wurde das Schlüsselwort nicht gefunden oder die Preference-Datei nicht korrekt geöffnet (Datei fehlt zum Beispiel), dann wird der angegebene 'StandardWert' zurückgegeben.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


ReadPreferenceLong()

Syntax

Result = ReadPreferenceLong(Keyword$, StandardWert)

Beschreibung

Versucht den zum Schlüsselwort 'Keyword$' gehörenden Wert zu lesen. Wenn PreferenceGroup()benutzt wurde, dann beschränkt sich die Suche auf die aktuelle Gruppe. Wurde das Schlüsselwort nicht gefunden oder die Preference-Datei nicht korrekt geöffnet (Datei fehlt zum Beispiel), dann wird der angegebene 'StandardWert' zurückgegeben.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


ReadPreferenceString()

Syntax

Result$ = ReadPreferenceString(Keyword$, StandardWert$)

Beschreibung

Versucht den zum Schlüsselwort 'Keyword$' gehörenden String zu lesen. Wenn PreferenceGroup()benutzt wurde, dann beschränkt sich die Suche auf die aktuelle Gruppe. Wurde das Schlüsselwort nicht gefunden oder die Preference-Datei nicht korrekt geöffnet (Datei fehlt zum Beispiel), dann wird der angegebene 'StandardWert$' zurückgegeben.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


WritePreferenceFloat()

Syntax

WritePreferenceFloat(Keyword$, Wert.f)

Beschreibung

Schreibt das angegebene Schlüsselwort 'Keyword$' und dessen zugehörigen Wert in der Form 'Keyword$ = Wert' in die Preference-Datei, die zuvor mit CreatePreferences() erstellt wurde.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


WritePreferenceLong()

Syntax

WritePreferenceLong(Keyword$, Wert)

Beschreibung

Schreibt das angegebene Schlüsselwort 'Keyword$' und dessen zugehörigen Wert in der Form 'Keyword$ = Wert' in die Preference-Datei, die zuvor mit CreatePreferences() erstellt wurde.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


WritePreferenceString()

Syntax

WritePreferenceString(Keyword$, Wert$)

Beschreibung

Schreibt das angegebene Schlüsselwort 'Keyword$' und dessen zugehörigen Wert in der Form 'Keyword$ = Wert' in die Preference-Datei, die zuvor mit CreatePreferences() erstellt wurde.

Unterstützte OS

Windows, Linux

Preference - Inhaltsverzeichnis


Printer

PureBasic - Printer

Einleitung

Drucker sind essentielle Schnittstellen, um virtuelle, nummerische Daten auf Papier auszugeben. Viele Software benötigt einen Weg, Daten auf Papier auszudrucken, um wirklich nützlich zu sein. PureBasic erlaubt jede Art von Daten - von einfachem Text bis zu Bildern - in jeder Auflösung zu drucken.

Befehlsübersicht

NewPrinterPage
PrintRequester
PrinterOutput
PrinterPageHeight
PrinterPageWidth
StartPrinting
StopPrinting

Beispiel

Printer.pb

Unterstützte OS

Windows, Linux

Referenz-Handbuch - Inhaltsverzeichnis


NewPrinterPage()

Syntax

NewPrinterPage()

Beschreibung

Erstellt eine neue leere Seite ("ein virtuelles Blatt Papier"). Die vorherige Seite wird an den Drucker geschickt und kann nicht mehr verändert werden.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


PrintRequester()

Syntax

Result = PrintRequester()

Beschreibung

Öffnet den regulären Drucker-Requester, um den Drucker auszuwählen und einige Einstellungen zu treffen. Dieser Befehl muss vor allen anderen Drucker-Befehlen aufgerufen werden. Ist das Ergebnis 'Result' gleich 0, dann ist entweder kein Drucker verfügbar oder der Benutzer hat den Requester abgebrochen. Sobald PrintRequester() erfolgreich aufgerufen wurde, wird StartPrinting() benutzt, um das Ausdrucken zu beginnen.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


PrinterOutput()

Syntax

OutputID = PrinterOutput()

Beschreibung

Gibt die OutputID des aktuellen Druckers zurück, die zusammen mit dem StartDrawing()Befehl benutzt werden kann. Alle 2DDrawing Befehle sind möglich und können zum Ausdrucken benutzt werden. Der Drucker wird wie ein leeres Blatt Papier angesehen, genau wie ein Fenster oder ein Bild.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


PrinterPageHeight()

Syntax

Result = PrinterPageHeight()

Beschreibung

Gibt die Höhe (in Pixel) des Zeichen-Bereichs zurück. Der Wert ändert sich mit der Auflösung (DPI) des Druckers. Dies bedeutet, dass ein Dokument, das mit 75 DPI gedruckt wird, einen Zeichenbereich hat, der 4 mal kleiner ist als beim Druck eines Dokuments mit 150 DPI.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


PrinterPageWidth()

Syntax

Result = PrinterPageWidth()

Beschreibung

Gibt die Breite (in Pixel) des Zeichen-Bereichs zurück. Der Wert ändert sich mit der Auflösung (DPI) des Druckers. Dies bedeutet, dass ein Dokument, das mit 75 DPI gedruckt wird, einen Zeichenbereich hat, der 4 mal kleiner ist als beim Druck eines Dokuments mit 150 DPI.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


StartPrinting()

Syntax

Result = StartPrinting(JobName$)

Beschreibung

Initialisiert den Drucker und startet die Druck-Operation. 'JobName$' ist der Name, welcher im Drucker-Spooler angezeigt wird und den Druck identifiziert. Ist das Ergebnis 'Result' gleich 0, konnte die Druck-Operation nicht gestartet werden.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


StopPrinting()

Syntax

StopPrinting()

Beschreibung

Stoppt alle Druck-Operationen und sendet die Daten an den Drucker.

Unterstützte OS

Windows, Linux

Printer - Inhaltsverzeichnis


Requester

PureBasic - Requester

Einleitung

Computernutzer kennen alle die Requester, da fast alle Applikationen mit einer grafischen Benutzeroberfläche wenigstens einen davon benutzen. Sie sind sehr nützlich bei einigen grundlegenden Dingen (wie Öffnen einer Datei, Auswählen einer Farbe, Auswählen eines Zeichensatzes ect.), welche durch standardmäßige Auswahlfenster - genannt 'Requester' - sichergestellt werden.

Befehlsübersicht

ColorRequester
FontRequester
MessageRequester
OpenFileRequester
PathRequester
SaveFileRequester
SelectedFontColor
SelectedFontName
SelectedFontSize
SelectedFontStyle

Beispiel

Requester.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ColorRequester()

Syntax

Color = ColorRequester()

Beschreibung

Öffnet einen Standard Requester zum Auswählen einer Farbe. Die ausgewählte Farbe wird als 24 Bit-Wert zurückgegeben, der wie üblich die Rot-, Grün- und Blau-Werte enthält. Wenn der Benutzer den Requester abbricht, wird -1 zurückgegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


FontRequester()

Syntax

Result = FontRequester(FontName$, FontSize, Flags)

Beschreibung

Öffnet den Standard Requester zum Auswählen eines Zeichensatzes. Wenn der Benutzer den Requester abbricht, ist der Rückgabewert gleich 0, andernfalls beträgt dieser 1. 'FontName' und 'FontSize' können benutzt werden, um den Standard-Font festzulegen. 'Flags' werden noch nicht unterstützt und müssen 0 betragen (für zukünftige Kompatibilität). Die Befehle SelectedFontColor(), SelectedFontName() und SelectedFontSize() können nach einem erfolgreichen Aufruf benutzt werden, um die benötigten Informationen über den ausgewählten Zeichensatz zu erhalten.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


MessageRequester()

Syntax

Result = MessageRequester(Title$, Text$, Flags)

Beschreibung

Öffnet einen ('blocking') Requester zum Anzeigen einiger Informationen. Die Programmausführung wird vollständig angehalten, bis der Benutzer den Requester schließt. Als Flag kann einer der folgenden angegeben werden:

#PB_MessageRequester_YesNo : Um die 'Yes' (Ja) oder 'No' (Nein) Schalter zu erhalten
#PB_MessageRequester_YesNoCancel : Um die 'Yes' (Ja), 'No' (Nein) und 'Cancel' (Abbruch) Schalter zu erhalten
#PB_MessageRequester_Ok : Um nur einen 'Ok' Schalter zu erhalten

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


OpenFileRequester()

Syntax

FileName$ = OpenFileRequester(Title$, DefaultFile$, Pattern$, PatternPosition)

Beschreibung

Öffnet einen Standard Requester zum Auswählen einer Datei. Der Titel 'Title$' kann angegeben werden, um den standardmäßigen Titel zu ersetzen. Der 'DefaultFile$' ist nützlich, um den Requester mit dem richtigen Verzeichnis und dem richtigen Dateinamen zu initialisieren.

Der Pattern$ ist ein Standard Filter, welcher nur die Anzeige von Dateien mit dieser oder jener Dateiendung erlaubt. Er muss in der folgenden Form angegeben werden: "Text-Dateien | *.txt | Musik-Dateien | *.mus;*.mod". Der Pattern arbeitet immer paarweise: Name (welcher wirklich im Filter erscheint) und Endung (z.B. *.txt). Mehrere für einen Typ mögliche Endungen können unter Benutzung des ; (Semikolon) angegeben werden.

Letztlich gibt die 'PatternPosition' an, welcher Pattern als Standard eingestellt sein soll. Mögliche Werte sind 0 bis zur Anzahl der Patterns.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


PathRequester()

Syntax

FileName$ = PathRequester(Title$, InitialPath$)

Beschreibung

Öffnet den Standard Verzeichnis-Requester zum Auswählen eines Verzeichnispfades. Der Titel 'Title$' kann angegeben werden, um den standardmäßigen Titel zu ersetzen. Der 'InitialPath$' ist nützlich, um den Requester mit dem richtigen Verzeichnis zu initialisieren. Der Verzeichnispfad wird mit dem abschließenden '\' zurückgegeben.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


SaveFileRequester()

Syntax

FileName$ = SaveFileRequester(Title$, DefaultFile$, Pattern$, PatternPosition)

Beschreibung

Öffnet einen Standard Requester zum Auswählen einer zu speichernden Datei. Der Titel 'Title$' kann angegeben werden, um den standardmäßigen Titel zu ersetzen. Der 'DefaultFile$' ist nützlich, um den Requester mit dem richtigen Verzeichnis und dem richtigen Dateinamen zu initialisieren.

Der Pattern$ ist ein Standard Filter, welcher nur die Anzeige von Dateien mit dieser oder jener Dateiendung erlaubt. Er muss in der folgenden Form angegeben werden: "Text-Dateien | *.txt | Musik-Dateien | *.mus;*.mod". Der Pattern arbeitet immer paarweise: Name (welcher wirklich im Filter erscheint) und Endung (z.B. *.txt). Mehrere für einen Typ mögliche Endungen können unter Benutzung des ; (Semikolon) angegeben werden.

Letztlich gibt die 'PatternPosition' an, welcher Pattern als Standard eingestellt sein soll. Mögliche Werte sind 0 bis zur Anzahl der Patterns.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


SelectedFontColor()

Syntax

Color = SelectedFontColor()

Beschreibung

Gibt die vom Benutzer im FontRequester() ausgewählte Farbe zurück. Die Farbe ist ein 24 Bit-Wert, welcher die Rot-, Grün- und Blau-Informationen enthält.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


SelectedFontName()

Syntax

Name$ = SelectedFontName()

Beschreibung

Gibt den Namen des vom Benutzer im FontRequester() ausgewählten Zeichensatzes zurück. Dieser Name kann direkt vom LoadFont() Befehl verwendet werden.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


SelectedFontSize()

Syntax

Size = SelectedFontSize()

Beschreibung

Gibt die Größe des vom Benutzer im FontRequester() ausgewählten Zeichensatzes zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


SelectedFontStyle()

Syntax

Style = SelectedFontStyle()

Beschreibung

Gibt den Stil des vom Benutzer im FontRequester() ausgewählten Zeichensatzes zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Requester - Inhaltsverzeichnis


Sort

PureBasic - Sort

Einleitung

Oftmals müssen Elemente sortiert sein, um einfacher oder überhaupt verwendbar zu sein. PureBasic bietet hoch-optimierte Befehle zum Sortieren von Arrays, entweder in aufsteigender oder absteigender Reihenfolge.

Befehlsübersicht

SortArray

Beispiel

Sort.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


SortArray()

Syntax

SortArray(ArrayName(), Optionen [, Start, Ende])

Beschreibung

Sortiert das angegebene Array 'ArrayName()' entsprechend den übergegebenen 'Optionen'. Das Array kann aus den folgenden Standard-Typen bestehen: Byte, Word, Long, String. Ein optionaler 'Start-Ende' Bereich kann angegeben werden.

Optionen kann folgende Werte annehmen:

0: Sortiert das Array in aufsteigender Richtung (kleine Zahlen zuerst)
1: Sortiert das Array in absteigender Richtung (große Zahlen zuerst)
2: Sortiert ein String-Array ohne Berücksichtigung der Groß-/Kleinschreibung (a=A, b=B etc..) in aufsteigender Richtung
3: Sortiert ein String-Array ohne Berücksichtigung der Groß-/Kleinschreibung (a=A, b=B etc..) in absteigender Richtung

Hinweis: Ist ein Array nicht vollständig gefüllt, dann werden 'Null'-Elemente an den Anfang des Arrays (bei aufsteigender Sortier-Richtung) bzw. an das Ende des Arrays (bei absteigender Sortier-Richtung) sortiert.

Unterstützte OS

Windows

Sort - Inhaltsverzeichnis


Sound

PureBasic - Sound

Einleitung

Das PureBasic Soundsystem ermöglicht auf einfachem Weg Sound innerhalb von Applikationen oder Spielen zu integrieren. Es benutzt spezielle Funktionen, um maximale Geschwindigkeit auf der verfügbaren Hardware zu erhalten. Es benötigt DirectX 7 (Windows 9x/2000) oder DirectX 3 bei Benutzung des Windows NT 4.0 Kompatibilitätsmodus.

Befehlsübersicht

CatchSound
FreeSound
InitSound
LoadSound
PlaySound
SoundFrequency
SoundPan
SoundVolume
StopSound

Beispiel

Sound.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CatchSound()

Syntax

Result = CatchSound(#Sound, Speicheradresse)

Beschreibung

Lädt einen WAV Sound, der sich an der angegebenen Speicheradresse befindet. Ist das Ergebnis 'Result' ungleich 0, wurde der Sound korrekt geladen und ist bereit zum Abspielen mit PlaySound(), andernfalls ist das Laden fehlgeschlagen. Der Sound muss im Standard WAVE Format (.wav) vorliegen. Sounds werden in 16 Bit und in 8 Bit sowie in jeder Frequenz unterstützt.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


FreeSound()

Syntax

FreeSound(#Sound)

Beschreibung

Hält den zuvor mit dem LoadSound() Befehl geladenen #Sound an und entfernt ihn aus dem Speicher. Sobald ein Sound freigegeben wurde, kann er nicht mehr abgespielt werden.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


InitSound()

Syntax

Result.l = InitSound(#MaximumSounds)

Beschreibung

Initialisiert die Sound Programmierumgebung. Ergibt der Rückgabewert 'Result' 0, kann kein Sound auf diesem Computer abgespielt werden oder die Soundausgabe (sound decive) ist beschäftigt. Diese Funktion muss immer vor allen anderen Soundbefehlen aufgerufen und ihr Ergebnis überprüft werden. Wenn die Initialisierung der Sound-Umgebung fehlschlägt, ist es absolut notwendig, alle weiteren Aufrufe von Soundbefehlen zu deaktivieren.

Mögliche Fehlerursachen unter MS Windows: DirectX 7 kann nicht aufgerufen werden oder es ist keine Soundkarte verfügbar. Wenn Ihr Programm unter NT4.0 laufen soll, markieren sie unbedingt 'NT4.0 kompatibles Executable' in den Compiler-Optionen.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


LoadSound()

Syntax

Result = LoadSound(#Sound, DateiName$)

Beschreibung

Lädt den angegebenen Sound in den Speicher. Ist 'Result' nicht gleich 0, wurde der Sound korrekt geladen und bereit zum Abspielen mittels PlaySound(). Andernfalls ist das Laden des Sounds fehlgeschlagen. Der Sound muss im Standard WAVE Format (.wav) vorliegen. Sounds werden in 16 Bit und in 8 Bit sowie in jeder Frequenz unterstützt.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


PlaySound()

Syntax

PlaySound(#Sound [, Modus])

Beschreibung

Startet das Abspielen des angegebenen #Sounds. Modus ist optional und kann folgenden Wert annehmen:

0: Spielt den Sound nur einmal
1: Spielt den Sound fortwährend (Schleife)

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


SoundFrequency()

Syntax

SoundFrequency(#Sound, Frequenz)

Beschreibung

Legt in Echtzeit die neue Frequenz (in Hz) für den #Sound fest. Der Frequenz-Wert wird für den #Sound gespeichert, deshalb ist es nicht nötig, diesen jedesmal aufzurufen. Die gültigen Werte reichen von 1000 Hz bis 100000 Hz.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


SoundPan()

Syntax

SoundPan(#Sound, Pan)

Beschreibung

Legt in Echtzeit die Balanz des #Sounds fest. Der Balanz-Wert 'Pan' wird für den #Sound gespeichert, deshalb ist es nicht nötig, diesen jedesmal aufzurufen. Die Balanz ist eine Möglichkeit, das Abspielen eines Sounds auf einem Stereo-Equiqment zu beeinflussen. Die gültigen Werte reichen von -100 (voll links) bis 100 (voll rechts). Ist die Balanz gleich 0, wird der Sound gleichmäßig auf linkem und rechtem Lautsprecher abgespielt.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


SoundVolume()

Syntax

SoundVolume(#Sound, Volume)

Beschreibung

Legt in Echtzeit den neuen Lautstärke-Wert 'Volume' fest. Der Lautstärke-Wert wird für den #Sound gespeichert, deshalb ist es nicht nötig, diesen jedesmal aufzurufen. Die gültigen Werte reichen von 0 (keine Lautstärke) bis 100 (volle Lautstärke).

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


StopSound()

Syntax

StopSound(#Sound)

Beschreibung

Stoppt den angegebenen #Sound (sofern einer abgespielt wird). Ist der #Sound Wert gleich -1, dann werden alle gerade abgespielten Sounds gestoppt.

Unterstützte OS

Windows, AmigaOS, Linux

Sound - Inhaltsverzeichnis


Sprite

PureBasic - Sprite

Einleitung

'Sprites' sind von Computerspielen wohlbekannt. Dies sind kleine Bilder, manchmal auch 'Brushes' (Pinsel) genannt, welche an jeder Position des Bildschirms angezeigt werden können. Die Sprites können mittels einem transparenten Layer (Schicht) über Grafiken bewegt werden. Noch besser, PureBasic erlaubt das Ausführen von Echtzeit-Effekten wie echter Schatten, Alpha-Blending, RGB-Filter, Alpha-Kanal, ... und all dies im Fenster- oder 'Fullscreen' (Bildschirm) Modus. DirectX 7 wird für das Sprite-Handling benutzt, was die Benutzung eines ggf. vorhandenen Hardware Blitter-Chips ermöglicht.

Da die Sprites unter Microsoft Windows eng mit dem Bildschirm ('Screen') verknüpft sind, wurden die Screen-relevanten Befehle in die Sprite Library integriert (dies kann sich später ändern).

Befehlsübersicht

CatchJPEGSprite
CatchSprite
ChangeAlphaIntensity
ChangeGamma
ClearScreen
ClipSprite
CloseScreen
CopySprite
DisplayAlphaSprite
DisplayRGBFilter
DisplayShadowSprite
DisplaySolidSprite
DisplaySprite
DisplayTranslucideSprite
DisplayTransparentSprite
FlipBuffers
FreeSprite
GrabSprite
InitSprite
IsScreenActive
LoadJPEGSprite
LoadSprite
OpenScreen
OpenWindowedScreen
SaveSprite
ScreenOutput
SetFrameRate
SetRefreshRate
SpriteCollision
SpriteDepth
SpriteHeight
SpriteOutput
SpritePixelCollision
SpriteWidth
StartSpecialFX
StopSpecialFX
TransparentSpriteColor

Beispiel

Sprite.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


CatchJPEGSprite()

Syntax

Result = CatchJPEGSprite(#Sprite, MemoryAddress, JPEGLength, Modus)

Beschreibung

Lädt das angegebene Sprite aus dem angegebenen Speicherbereich 'MemoryAddress'. Das Sprite muss im JPG-Format (mit Ausnahme der progressiven Form) vorliegen. Ging etwas schief, wird als 'Result' 0 zurückgegeben. Das Sprite kann in einer beliebigen Dimension und in 256 Farben, 16 Bit, 24 Bit oder im 32 Bit-Format vorliegen. Ein geladenes Sprite kann mittels dem FreeSprite() Befehl freigegeben werden. Das JPEG Sprite benutzt eine interne JPEG Dekomprimierungs-Routine, es werden keine externen DLLs benötigt. Dieser Befehl ist nützlich im Zusammenhang mit dem 'IncludeBinary' PureBasic Schlüsselwort. Damit können Bilder mit in das Executable gepackt werden. Verwenden Sie diese Option trotzdem mit Bedacht, da mehr Speicher als beim Speichern des Sprites in einer externen Datei benötigt wird (das Sprite befindet sich im Speicher des Executable UND wird in den physikalischen Speicher geladen).

Der 'Modus' Parameter kann die folgenden Werte annehmen:
- 0 : Normaler Modus, das Sprite befindet sich im Video-Speicher (wenn möglich)
- #PB_Sprite_Memory: das Sprite wird in den PC-Hauptspeicher geladen (für SpecialFX)
- #PB_Sprite_Alpha: das Sprite ist in 8 Bit, grau und wird mit DisplayAlphaSprite()oder DisplayShadowSprite() benutzt
- #PB_Sprite_Texture: das Sprite wird mit 3D Unterstützung erstellt, nützlich für den CreateSprite3D() Befehl der Sprite3D Library.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


CatchSprite()

Syntax

Result = CatchSprite(#Sprite, MemoryAddress, Modus)

Beschreibung

Lädt das angegebene Sprite aus dem angegebenen Speicherbereich 'MemoryAddress'. Das Sprite muss im unkomprimierten BMP-Format vorliegen. Ging etwas schief, wird als Ergebnis 'Result' 0 zurückgegeben. Das Sprite kann in einer beliebigen Dimension und in 256 Farben, 16 Bit, 24 Bit oder im 32 Bit-Format vorliegen. Ein geladenes Sprite kann mittels dem FreeSprite() Befehl freigegeben werden. Dieser Befehl ist nützlich im Zusammenhang mit dem 'IncludeBinary' PureBasic Schlüsselwort. Damit können Bilder mit in das Executable gepackt werden. Verwenden Sie diese Option trotzdem mit Bedacht, da mehr Speicher als beim Speichern des Sprites in einer externen Datei benötigt wird (das Sprite befindet sich im Speicher des Executable UND wird in den physikalischen Speicher geladen).

Der 'Modus' Parameter kann folgende Werte annehmen:
- 0 : Normaler Modus, das Sprite befindet sich im Video-Speicher (wenn möglich)
- #PB_Sprite_Memory: das Sprite wird in den PC-Hauptspeicher geladen (für SpecialFX)
- #PB_Sprite_Alpha: das Sprite ist in 8 Bit, grau und wird mit DisplayAlphaSprite()oder DisplayShadowSprite() benutzt
- #PB_Sprite_Texture: das Sprite wird mit 3D Unterstützung erstellt, nützlich für den CreateSprite3D() Befehl der Sprite3D Library.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


ChangeAlphaIntensity()

Syntax

ChangeAlphaIntensity(R, G, B)

Beschreibung

Ändert die Alpha-Intensität unabhängig von jedem der Rot, Grün und Blau-Kanäle. Dies wird zusammen mit dem DisplayAlphaSprite() Befehl benutzt. Das bedeutet, dass ein AlphaSprite in rot, grün oder jeder Farbe anstelle der transparenten gerendert werden kann. Dies ermöglichkeit hübsche Echtzeit-Effekte.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


ChangeGamma()

Syntax

ChangeGamma(R, G, B, Flags)

Beschreibung

Ändert die Gamma für den aktuellen Bildschirm. Sie arbeitet nur im 'FullScreen' Modus (nicht im Fenster-Modus). Die Rot, Grün und Blau-Kanäle können individuell geändert werden. Dieser Befehl kann zum Fading/Fadeout, Color-Splashing etc... des gesamten Bildschirms ('FullScreen') genutzt werden. Wenn dieser Befehl nichts tut, dann unterstützt die Hardware diese Funktion nicht (es wird keine Emulation angeboten, wegen der erforderlichen Tonnen von Operationen).

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


ClearScreen()

Syntax

ClearScreen(R, G, B)

Beschreibung

Löscht den gesamten Bildschirm mit der angegebenen RGB-Farbe.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


ClipSprite()

Syntax

Result = ClipSprite(#Sprite, x, y, Breite, Höhe)

Beschreibung

Fügt einen Clip-Bereich zum angegeben Sprite hinzu. Zum Beispiel, wenn ein Sprite 100 x 100 (Breite x Höhe) groß ist und das Clipping mit (x=10, y=10, Breite=20, Höhe=20) angegeben wird, dann wird beim Anzeigen des Sprites nur der rechteckige Bereich beginnend bei x=10, y=10 mit einer Breite von 20 und einer Höhe von 20 angezeigt.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


CloseScreen()

Syntax

CloseScreen()

Beschreibung

Schließt den aktuellen Bildschirm (egal ob "Windowed" oder "Fullscreen" Modus). Nach dem Schließen eines Bildschirms, müssen alle Sprites erneut geladen werden, da das Bildschirmformat verlorengeht und der Videospeicher freigegeben wird. Ein(e) Applikation/Spiel kann problemlos während des Programmablaufs zwischen "Fullscreen" und "Windowed" Modus umschalten.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


CopySprite()

Syntax

CopySprite(#Sprite1, #Sprite2, Modus)

Beschreibung

Kopiert das #Sprite1 in das #Sprite2. Wenn das #Sprite2 nicht existiert, wird es neu erstellt.

Der 'Modus' Parameter kann folgende Werte annehmen:
- 0 : Normaler Modus, das Sprite befindet sich im Video-Speicher (wenn möglich)
- #PB_Sprite_Memory: das Sprite wird in den Hauptspeicher des PC geladen (für SpecialFX)
- #PB_Sprite_Alpha: das Sprite ist in 8 Bit, grau und wird mit DisplayAlphaSprite()oder DisplayShadowSprite() benutzt
- #PB_Sprite_Texture: das Sprite wird mit 3D Unterstützung erstellt, nützlich für den CreateSprite3D() Befehl der Sprite3D Library.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


DisplayAlphaSprite()

Syntax

DisplayAlphaSprite(#Sprite, x, y)

Beschreibung

Zeigt das #Sprite an der angegebenen Position auf dem aktuellen Bildschirm an. Die Farbe 128,128,128 (grau) wird als transparente Farbe verwendet (diese Farbe wird nicht dargestellt). Das Sprite emuliert einen 'Alpha-Kanal', wodurch alle mit so einem Kanal möglichen Tricks auch mit dem Sprite möglich sind. Das Sprite muss ein 8 Bit (256 Farben) Sprite sein, mit nur grauen Farben. Auf diesem Sprite ergibt jede Grau-Intensität einen dunkleren oder helleren Schatten. Dies ermöglicht sehr coole Effekte in Echtzeit, wie Soft-Shadow etc... Die Möglichkeiten sind gewaltig. ChangeAlphaIntensity() kann benutzt werden, um jede der R,G,B Komponenten des Alpha-Kanals zu kontrollieren. Das Sprite muss mit dem LoadSprite() Befehl und der #PB_AlphaSprite Option geladen werden. Dieser Befehl wird ge'clipped', womit es möglich ist, das Sprite mit negativen Werten ausserhalb des Bildschirms darzustellen.

Dieser Befehl arbeitet viel schneller, wenn StartSpecialFX() genutzt wird.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


DisplayRGBFilter()

Syntax

DisplayRGBFilter(x, y, Breite, Höhe, R, G, B)

Beschreibung

Stellt einen Farb-Filter ('translucide') über dem Bildschirm dar. Dies ermöglicht sehr schnelles Darstellen eines rechteckigen Bereichs in einer beliebigen Farbe.

Dieser Befehl arbeitet viel schneller, wenn StartSpecialFX() genutzt wird.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


DisplayShadowSprite()

Syntax

DisplayShadowSprite(#Sprite, x, y)

Beschreibung

Zeigt das #Sprite an der angegebenen Position auf dem aktuellen Bildschirm an. Die Farbe 0 wird als transparente Farbe angesehen (diese Farbe wird nicht dargestellt). Das Sprite wird wie ein Schatten dargestellt, unter Benutzung eines schnelleren Algorhythmus als bei DisplayAlphaSprite(), aber mit nur einer Intensität. Das Sprite muss ein 8 Bit (256 Farben) Sprite sein. Das Sprite muss mit dem LoadSprite() Befehl und der #PB_AlphaSprite Option geladen werden. Dieser Befehl wird ge'clipped', womit es möglich ist, das Sprite mit negativen Werten ausserhalb des Bildschirms darzustellen.

Dieser Befehl arbeitet viel schneller, wenn StartSpecialFX() genutzt wird.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


DisplaySolidSprite()

Syntax

DisplaySolidSprite(#Sprite, x, y, R, G, B)

Beschreibung

Zeigt das #Sprite an der angegebenen Position auf dem aktuellen Bildschirm an. Die Farbe 0 wird als transparente Farbe angesehen (diese Farbe wird nicht dargestellt). Das Sprite wird in einer Farbe - beschrieben durch die R,G,B Argumente - dargestellt. Das Sprite muss ein 8 Bit (256 Farben) Sprite sein. Es muss mit dem LoadSprite() Befehl und der #PB_AlphaSprite Option geladen werden. Dieser Befehl wird ge'clipped', womit es möglich ist, das Sprite mit negativen Werten ausserhalb des Bildschirms darzustellen.

Dieser Befehl arbeitet viel schneller, wenn StartSpecialFX() genutzt wird.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


DisplaySprite()

Syntax

DisplaySprite(#Sprite, x, y)

Beschreibung

Zeigt das #Sprite an der angegebenen Position (x, y) auf dem aktuellen Sprite-Buffer an. Es gibt keine transparente Farbe. Dieser Befehl ist ge'clipped' (wird automatisch auf den Bildschirm zugeschnitten), daher ist die Darstellung eines Sprites ausserhalb des Bildschirms mit negativen Werten möglich.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


DisplayTranslucideSprite()

Syntax

DisplayTranslucideSprite(#Sprite, x, y, Intensität)

Beschreibung

Zeigt das #Sprite an der angegebenen Position auf dem aktuellen Bildschirm an. Die Farbe 0 wird als transparente Farbe angesehen (diese Farbe wird nicht dargestellt). Die 'Intensität' kontrolliert die Transparenz des Sprites über dem Hintergrund. Die Intensität-Werte reichen von 0 (völlig transparent) bis 255 (undurchsichtig). Dieser Effekt ist auch unter dem Namen 'Alpha-Blending' bekannt. Dieser Befehl wird ge'clipped', womit es möglich ist, das Sprite mit negativen Werten ausserhalb des Bildschirms darzustellen.

Dieser Befehl arbeitet viel schneller, wenn StartSpecialFX() genutzt wird.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


DisplayTransparentSprite()

Syntax

DisplayTransparentSprite(#Sprite, x, y)

Beschreibung

Zeigt das #Sprite an der angegebenen Position (x, y) auf dem aktuellen Bildschirm an. Die Farbe 0 wird als transparente Farbe betrachtet (diese Farbe wird nicht angezeigt). Dieser Befehl ist ge'clipped' (wird automatisch auf den Bildschirm zugeschnitten), daher ist die Darstellung eines Sprites außerhalb des Bildschirms mit negativen Werten möglich.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


FlipBuffers()

Syntax

FlipBuffers()

Beschreibung

Vertauscht den hinteren mit dem vorderen Buffer des aktuellen Bildschirms. So wird der unsichtbare Bereich nun sichtbar, welches einen 'Double-Buffering' Effekt (flickerfrei) ermöglicht. Ein Bildschirm muss mittels OpenScreen()geöffnet worden sein.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


FreeSprite()

Syntax

FreeSprite(#Sprite)

Beschreibung

Entfernt das angegebene #Sprite aus dem Speicher. Sie können es nun nicht mehr benutzen.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


GrabSprite()

Syntax

GrabSprite(#Sprite, x, y, Breite, Höhe)

Beschreibung

Fotografiert ("grab") den Bildschirminhalt im Bereich von (x, y, Breite, Höhe) und erstellt daraus ein neues #Sprite.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


InitSprite()

Syntax

Result = InitSprite()

Beschreibung

Initialisiert die gesamte Sprite-Umgebung zur späteren Benutzung. Sie müssen diese Funktion am Anfang Ihres Sourcecodes einfügen, wenn Sie die Sprite-Funktionen benutzen möchten. Sie können das Ergebnis ('Result') testen, um die korrekte Initialisierung der Sprite-Umgebung zu überprüfen. War diese nicht erfolgreich, beenden Sie das Programm oder deaktivieren Sie alle Aufrufe von Sprite-relevanten Befehlen. Dieser Befehl versucht, DirectX 7 zu initialisieren. Wenn er also fehlschlägt, liegt dies möglicherweise an einem fehlenden oder zu alten DirectX.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


IsScreenActive()

Syntax

Result = IsScreenActive()

Beschreibung

Spiele und 'FullScreen' (den ganzen Bildschirm nutzende) Applikationen nutzen PureBasic Befehle, welche unter einer Multitasking Umgebung (AmigaOS, Windows oder Linux) laufen. Dies bedeutet, dass der User vom Bildschirm zurück auf den normalen Desktop wechseln kann. Diese Veränderung kann mit diesem Befehl registriert werden und sollte entsprechende Aktionen einleiten, wie ReleaseMouse(), Anhalten des Spiels, Stoppen der Sounds etc... Ist das Ergebnis 'Result' gleich 0, dann ist der Bildschirm nicht mehr aktiv, andernfalls ist der Bildschirm aktiv. Dieser Befehl muss nach einem FlipBuffers() aufgerufen werden, da die Ereignisse innerhalb von FlipBuffers() verwaltet werden.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


LoadJPEGSprite()

Syntax

Result = LoadJPEGSprite(#Sprite, DateiName$, Modus)

Beschreibung

Lädt das angegebene Sprite in den Speicher zur sofortigen Verwendung. Das Sprite muss im JPG Format (mit Ausnahme der progressiven Form) vorliegen. Ging beim Laden etwas schief, wird der Wert 0 zurückgegeben. Andernfalls ist alles in Ordnung... Die Sprites können in beliebigen Dimensionen und in 256 Farben, in 16 Bit, 24 Bit oder 32 Bit-Format vorliegen. Ein geladenes Sprite kann mit dem FreeSprite() Befehl freigegeben werden. Das JPEG Sprite benutzt eine interne JPEG Dekompressions-Routine, es werden keine externen DLLs benötigt.

Der 'Modus' Parameter kann folgende Werte annehmen:
- 0 : Normaler Modus, das Sprite befindet sich im Video-Speicher (wenn möglich)
- #PB_Sprite_Memory: das Sprite wird in den PC-Hauptspeicher geladen (für SpecialFX)
- #PB_Sprite_Alpha: das Sprite ist in 8 Bit, grau und wird mit DisplayAlphaSprite()oder DisplayShadowSprite() benutzt
- #PB_Sprite_Texture: das Sprite wird mit 3D Unterstützung erstellt, nützlich für den CreateSprite3D() Befehl der Sprite3D Library.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


LoadSprite()

Syntax

Result = LoadSprite(#Sprite, DateiName$, Modus)

Beschreibung

Lädt das angegebene Sprite in den Speicher zur sofortigen Verwendung. Das Sprite muss im BMP Format (in unkomprimierter Form) vorliegen. Ging beim Laden etwas schief, wird der Wert 0 zurückgegeben. Andernfalls ist alles in Ordnung... Die Sprites können in beliebigen Dimensionen und in 256 Farben, in 16 Bit, 24 Bit oder 32 Bit-Format vorliegen. Ein geladenes Sprite kann mit dem FreeSprite() Befehl freigegeben werden.

Der 'Modus' Parameter kann folgende Werte annehmen:
- 0 : Normaler Modus, das Sprite befindet sich im Video-Speicher (wenn möglich)
- #PB_Sprite_Memory: das Sprite wird in den PC-Hauptspeicher geladen (für SpecialFX)
- #PB_Sprite_Alpha: das Sprite ist in 8 Bit, grau und wird mit DisplayAlphaSprite()oder DisplayShadowSprite() benutzt
- #PB_Sprite_Texture: das Sprite wird mit 3D Unterstützung erstellt, nützlich für den CreateSprite3D() Befehl der Sprite3D Library.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


OpenScreen()

Syntax

Result = OpenScreen(Breite, Höhe, Tiefe, Titel$)

Beschreibung

Öffnet einen neuen Bildschirm entsprechend der angegebenen 'Breite', 'Höhe' und 'Tiefe'. Der geöffnete Bildschirm wird mit 2 Videobuffern erstellt, um das 'Double-Buffering' zu ermöglichen, welches speziell für Spiele entwickelt wurde. Die Buffer können mittels dem FlipBuffers() Befehl manipuliert werden. Wenn das Öffnen des Bildschirms fehlschlägt, ist 'Result' gleich 0.

Breite und Höhe sollten Standard Kombinationen sein: 640*480, 800*600, 1024*768...

Tiefe kann die folgenden Werte annehmen:

4: 16 Farben, unabhängige Palette möglich
8: 256 Farben, unabhängige Palette möglich
16: 65.000 Farben, feste Palette
24: 16 Mio. Farben, feste Palette
32: 16 Mio. Farben, schneller als der 24 Bit Modus

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


OpenWindowedScreen()

Syntax

Result = OpenWindowedScreen(WindowID(), x, y, Breite, Höhe, AutoStretch, RightOffset, BottomOffset)

Beschreibung

Öffnet einen neuen Bildschirm entsprechend den angegebenen Parametern auf dem angegebenen Fenster 'WindowID()'. Ist 'AutoStretch' gleich 1, dann wird die Größe des Bildschirmbereichs automatisch angepasst, wenn sich die Fenstergröße ändert. 'RightOffset' und 'BottomOffset' werden benutzt, um einen rechten und einen unteren Rand des Fensters zu definieren (für eine StatusBar zum Beispiel). Der geöffnete Bildschirm wird mit 2 Videobuffern erstellt, um das speziell für Spiele entwickelte DoubleBuffering zu ermöglichen. Die Buffer können mittels dem FlipBuffers() Befehl manipuliert werden. Wenn das Öffnen des Bildschirms fehlschlägt, ist 'Result' gleich 0.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SaveSprite()

Syntax

SaveSprite(#Sprite, DateiName$)

Beschreibung

Speichert das angegebene #Sprite im BMP-Format auf Disk. Sehr nützlich für "Screenshots" (Schnappschüsse vom Bildschirminhalt) in Zusammenspiel mit dem GrabSprite() Befehl.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


ScreenOutput()

Syntax

OutputID = ScreenOutput()

Beschreibung

Gibt die 'OutputID' des aktuell benutzten Bildschirms zurück, um darauf 2D-Zeichenoperationen auszuführen. Hierfür wird die PureBasic 2DDrawing Library benutzt (siehe StartDrawing()).

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SetFrameRate()

Syntax

SetFrameRate(FrameRate)

Beschreibung

Legt die Frame-Rate (in Frames pro Sekunde) für den aktuellen Bildschirm fest. Dies ist besonders nützlich für den mit OpenWindowedScreen() festgelegten 'windowed' Bildschirmmodus.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


SetRefreshRate()

Syntax

SetRefreshRate(RefreshRate)

Beschreibung

Legt die Refresh-Rate (in Hz) für den nächsten zu öffnenden Bildschirm fest. Wenn OpenScreen() die angegebene Rate nicht verarbeiten kann, schlägt diese Funktion fehl.

Unterstützte OS

Windows

Sprite - Inhaltsverzeichnis


SpriteCollision()

Syntax

Result = SpriteCollision(#Sprite1, x1, y1, #Sprite2, x2, y2)

Beschreibung

Testet, ob sich die zwei Sprites überlappen. Wenn nicht, ist der Rückgabewert 'Result' gleich 0. Diese Routine eine rechteckige Prüfung, ergibt also eine sehr schnelle aber nicht sehr genaue Funktion. Sehr nützlich für schnelle Arcade-Spiele.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SpriteDepth()

Syntax

Result = SpriteDepth(#Sprite)

Beschreibung

Gibt die Tiefe des angegebenen #Sprites zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SpriteHeight()

Syntax

Result = SpriteHeight(#Sprite)

Beschreibung

Gibt die Höhe in Pixel des angegebenen #Sprite zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SpriteOutput()

Syntax

OutputID = SpriteOutput(#Sprite)

Beschreibung

Ermittelt die OutputID des angegebenen #Sprite, um darauf 2D Zeichenoperationen durchzuführen. Es wird hierfür die PureBasic 2DDrawing Library (siehe StartDrawing()) benutzt.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SpritePixelCollision()

Syntax

Result = SpritePixelCollision(#Sprite1, x1, y1, #Sprite2, x2, y2)

Beschreibung

Überprüft, ob sich zwei Sprites überlappen. Wenn nein, ist das Ergebnis 'Result' gleich 0. Diese Routine basiert auf einer exakten Kollisionsüberprüfung anhand transparenter Pixel, welches eine langsamere aber sehr genaue Routine darstellt. Um die Überprüfung zu optimieren, entfernen Sie so viele transparente Pixelfarben wie möglich, um die genaue Sprite-Größe zu erhalten.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


SpriteWidth()

Syntax

Result = SpriteWidth(#Sprite)

Beschreibung

Gibt die Breite in Pixel des angegebenen #Sprite zurück.

Unterstützte OS

Windows, AmigaOS, Linux

Sprite - Inhaltsverzeichnis


StartSpecialFX()

Syntax

StartSpecialFX()

Beschreibung

PureBasic erlaubt das Ausführen von Echtzeit-Effekten wie Alpha-Blending, Shadow, Color-Filter etc... Deren Darstellung ist sehr CPU-intensiv (auch wenn die Befehle sehr optimiert sind) und muss deshalb zur schnellen Ausführung einen Trick benutzen. StartSpecialFX() erstellt einen Speicherbuffer, worin das gesamte Rendering durchgeführt wird. Das Ergebnis wird zurück in den Video-Speicher kopiert, sobald StopSpecialFX() aufgerufen wird. Dies bedeutet, dass während dieser Periode keine Hardware-Beschleunigung (z.B. Grafikkarten-Chips) benutzt werden kann. Alle Operationen werden durch den Hauptprozessor ausgeführt. Es ist wichtig, dies zu verstehen, da andernfalls die Spiele-Performance gewaltig sinkt.

Zum Beispiel sollte der gesamte SpecialFX()-Code zusammengefasst und mit einmal gerendert werden (Shadow, Translucide Sprite etc...). Standard-Sprites sollten nach einem StopSpecialFX() dargestellt werden, um die Hardwarebeschleunigung auszunutzen. Befehle welche den SpezialFX Modus nutzen: DisplayAlphaSprite(), DisplaySolidSprite(), DisplayShadowSprite(), DisplayRGBFilters(), DisplayTranslucideSprite()

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


StopSpecialFX()

Syntax

StopSpecialFX()

Beschreibung

Sobald alle Rendering-Operationen ausgeführt wurden (siehe StartSpecialFX()), kopiert dieser Befehl den Buffer zurück in den Video-Speicher und die Hardwarebeschleunigung ist wieder verfügbar.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


TransparentSpriteColor()

Syntax

TransparentSpriteColor(#Sprite, Rot, Grün, Blau)

Beschreibung

Ändert die transparente Farbe des Sprites (wenn es mittels DisplayTransparentSprite()angezeigt wird). Ist der #Sprite Parameter gleich -1, dann wird die Standardfarbe (normalerweise schwarz (0,0,0)) auf die neu angegebene Farbe geändert und alle zukünftig geladenen Sprites (mittels LoadSprite()) benutzen diese Farbe als transparente Farbe.

Unterstützte OS

Windows, Linux

Sprite - Inhaltsverzeichnis


Sprite3D

PureBasic - Sprite3D

Einleitung

Die Sprite3D Library ist eine kleine 3D-Engine, die zum Anzeigen von 2D Sprites mit den neuen 3D Hardware-Möglichkeiten wie Echtzeit-Zooming, Transforming, Blending (Transparenz-Effekte) und mehr benutzt wird. Um mehr über die Sprites zu erfahren, lesen Sie einfach die Dokumentation zur 'Sprite' Library. Eine neuere Grafikkarte ist dringend zu empfehlen, um die volle Power dieser Funktionen (mit 3D-Beschleunigung) ausnutzen zu können. 3D-Sprites werden angeboten, um damit einfach ungewöhnliche Effekte erstellen zu können. Beachten Sie aber bitte, dass sie langsamer als normale Sprites sind und größeren Einschränkungen (z.B. in der Größe) unterliegen. DirectX 7 wird für das Sprite-Handling benutzt, was die Benutzung eines ggf. vorhandenen Hardware Blitter-Chips ermöglicht.

Befehlsübersicht

CreateSprite3D
DisplaySprite3D
FreeSprite3D
Init3DSprite
RotateSprite3D
Sprite3DBlendingMode
Sprite3DQuality
Start3D
Stop3D
TransformSprite3D
ZoomSprite3D

Beispiel

Sprite3D.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


CreateSprite3D()

Syntax

Result = CreateSprite3D(#Sprite3D, #Sprite)

Beschreibung

Erstellt ein 3D-Sprite '#Sprite3D' aus dem angegebenen 2D-Sprite '#Sprite'. Ein 3D-Sprite umfasst nur 4 Bildpunkte (ein Rechteck), worauf eine Textur gelegt ('mapped') wird. Die Textur ist in Wahrheit ein reguläres Sprite, dass mittels LoadSprite() im #PB_Sprite_Texture Modus geladen wurde. Die Textur muss ein Quadrat in den folgenden Grössen sein: 16*16, 32*32, 64*64, 128*128 oder 256*256. Andere Größen funktionieren möglicherweise auf einigen Grafikkarten, aber nicht auf allen. Ist das Ergebnis 'Result' gleich 0, konnte das 3D-Sprite nicht erstellt werden, andernfalls ist alles ok.

Ein zum Erstellen eines 3D-Sprites benutztes 2D-Sprite muss nicht gelöscht werden, wenn ein 3D-Sprite es benutzt. Ein einzelnes 2D-Sprite kann von einer beliebigen Anzahl 3D-Sprites verwendet werden.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


DisplaySprite3D()

Syntax

DisplaySprite3D(#Sprite3D, x, y, Transparenz)

Beschreibung

Stellt das angegebene '#Sprite3D' an den angegebenen Koordinaten (x,y) dar. Ein Transparenz-Wert wird benutzt und sollte zwischen 0 und 255 liegen. 0 bedeutet unsichtbar (durchsichtig), 255 bedeutet undurchsichtig. Beliebige Werte in diesem Bereich können benutzt werden. Für eine bessere Darstellung ist dringend ein 32Bit-Bildschirmmodus angeraten, um weiches Ein- und Ausblenden zu ermöglichen.

Start3D() muss vor dieser Funktion aufgerufen werden. Wenn mehrere 3D-Sprites dargestellt werden sollen, ist es viel besser, diese alle mit einmal anzuzeigen. Beispiel:

Start3D()
DisplaySprite3D(1, 100, 100, 128)
DisplaySprite3D(2, 100, 150, 100)
...
Stop3D()

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


FreeSprite3D()

Syntax

FreeSprite3D(#Sprite)

Beschreibung

Entfernt das angegebene Sprite '#Sprite' aus dem Speicher. Das damit verknüpfte 2D-Sprite wird hierdurch jedoch nicht freigegeben.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


Init3DSprite()

Syntax

Result = Init3DSprite()

Beschreibung

Versucht, die gesamte 3D-Sprite Programmumgebung zu initialisieren. Ist das Ergebnis 'Result' gleich 0, dann ist die 3D-Hardware (oder eine Emulation) nicht verfügbar. InitSprite() muss vor dieser Funktion aufgerufen werden.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


RotateSprite3D()

Syntax

RotateSprite3D(#Sprite3D, Winkel, Modus)

Beschreibung

Dreht (rotiert) das angegebene #Sprite3D um den angegebenen 'Winkel'. Der Wert von 'Winkel' kann zwischen 0 und 360 liegen. 'Modus' kann folgende Werte annehmen:

0: Alle Dimensionen werden auf ihre Original-Werte zurückgesetzt (damit werden alle vorherigen "Zoom" oder "Rotate" Operationen rückgängig gemacht). Dies ist sehr nützlich, wenn mehrere Sprites zur gleichen Zeit aus einem #Sprite3D generiert werden. Dadurch kann jedes Sprite korrekt, mit seinem eigenen Winkel, angezeigt werden.
1: Die vorherigen Sprite Dimensionen/Verformungen werden nicht verändert. Dies ermöglicht die Benutzung des ZoomSprite3D() Befehls vor dem "Rotate" Befehl, macht aber die gemeinsame Benutzung des #Sprite3D schwieriger.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


Sprite3DBlendingMode()

Syntax

Sprite3DBlendingMode(Ausgangsmodus, Zielmodus)

Beschreibung

Verändert die Art, wie das Sprite3D (beim Benutzen von DisplaySprite3D() und einem Transparenz Wert) grafisch mit dem Hintergrund verbunden ("blended") wird. Beide Modi (Ausgangs- und Zielmodus) können einen Wert zwischen 0 und 24 annehmen. Dieser Befehl ist nur für fortgeschrittene Programmierer. Hier die DirectX Liste der zugehörigen Werte:

#D3DTOP_SELECTARG1 = 2

#D3DTOP_SELECTARG2 = 3

#D3DTOP_MODULATE   = 4

#D3DTOP_MODULATE2X = 5

#D3DTOP_MODULATE4X = 6

#D3DTOP_ADD        = 7

#D3DTOP_ADDSIGNED  = 8

#D3DTOP_ADDSIGNED2X  =  9

#D3DTOP_SUBTRACT     = 10

#D3DTOP_ADDSMOOTH    = 11

#D3DTOP_BLENDDIFFUSEALPHA    = 12

#D3DTOP_BLENDTEXTUREALPHA    = 13

#D3DTOP_BLENDFACTORALPHA     = 14

#D3DTOP_BLENDTEXTUREALPHAPM  = 15

#D3DTOP_BLENDCURRENTALPHA    = 16

#D3DTOP_PREMODULATE            = 17

#D3DTOP_MODULATEALPHA_ADDCOLOR = 18

#D3DTOP_MODULATECOLOR_ADDALPHA = 19

#D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20

#D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21

#D3DTOP_BUMPENVMAP           = 22

#D3DTOP_BUMPENVMAPLUMINANCE  = 23

#D3DTOP_DOTPRODUCT3          = 24

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


Sprite3DQuality()

Syntax

Sprite3DQuality(Qualität)

Beschreibung

Ändert die Art der Sprite3D Darstellung ("Rendering"). 'Qualität' kann folgende Werte annehmen:

0: Keine Filterung (schnell, aber "hässlich" beim Zoomen/Rotieren)
1: Bilineare Filterung (langsamer, aber dafür sehr sauber beim Zoomen/Rotieren)

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


Start3D()

Syntax

Result = Start3D()

Beschreibung

Startet die 3D-Engine und bereitet die Anzeige der 3D-Sprites vor. Dieser Befehl muss vor dem Benutzen von DisplaySprite3D() aufgerufen werden und Stop3D() muss danach - wenn das Rendern aller 3D-Sprites erfolgte - aufgerufen werden. Ist das Ergebnis 'Result' gleich 0, ist die Initialisierung fehlgeschlagen und 3D-Sprite Befehle können nicht benutzt werden.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


Stop3D()

Syntax

Stop3D()

Beschreibung

Stoppt die 3D-Engine. Dies erfolgt typischerweise nach dem Rendern (Anzeigen) des letzten 3D-Sprites. Start3D() muss vor diesem Befehl aufgerufen worden sein.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


TransformSprite3D()

Syntax

TransformSprite3D(#Sprite3D, x1, y1, x2, y2, x3, y3, x4, y4)

Beschreibung

Verformt ("transform") das 3D-Sprite auf die neu angegebenen Koordinaten. Dies erfolgt typischerweise beim Durchführen von Echtzeit-Verformungen. Warnung: Da ein Sprite3D sich in 2 Richtungen ausdehnt (2 Dreiecke), kann die Verformung sehr seltsam aussehen...

  ;
  ; x1         x2
  ;   ---------
  ;   |      /|
  ;   |    /  |
  ;   |  /    |
  ;   |/      |
  ;   ---------
  ; x4         x3
  ;

Unterstützte OS

Windows, Linux

Sprite3D - Inhaltsverzeichnis


ZoomSprite3D()

Syntax

ZoomSprite3D(#Sprite3D, Breite, Höhe)

Beschreibung

Zoomt (vergrößert/verkleinert) das angegebene #Sprite3D auf die angegebenen Dimensionen. Wird eine Drehung benötigt, muss RotateSprite3D() nach ZoomSprite3D() aufgerufen werden.

Unterstützte OS

Windows

Sprite3D - Inhaltsverzeichnis


StatusBar

PureBasic - StatusBar

Einleitung

Eine Status-Leiste (status bar) ist die untere Leiste eines Fensters, worauf einige Informationen angezeigt werden. Diese Leiste ist immer sichtbar und kann in mehrere Abschnitte aufgeteilt werden.

Befehlsübersicht

AddStatusBarField
CreateStatusBar
FreeStatusBar
StatusBarIcon
StatusBarText
UpdateStatusBar

Beispiel

StatusBar.pb

Unterstützte OS

Windows, Linux

Referenz-Handbuch - Inhaltsverzeichnis


AddStatusBarField()

Syntax

AddStatusBarField(Breite)

Beschreibung

Fügt ein Feld zur aktuellen Statusleiste hinzu, die zuvor mittels CreateStatusBar()erstellt wurde. 'Breite' ist die Breite des neuen Felds in Pixel. Jedes neue Feld wird nach dem alten Feld erstellt. SetStatusBarText() kann benutzt werden, um jedes Feld mit einem Text zu füllen.

Unterstützte OS

Windows, Linux

StatusBar - Inhaltsverzeichnis


CreateStatusBar()

Syntax

Result = CreateStatusBar(#StatusBar, WindowID)

Beschreibung

Erstellt und fügt eine leere Statusleiste zur angegebenen WindowID hinzu. Ergibt 'Result' gleich 0, ist die Erstellung der Statusleiste fehlgeschlagen, andernfalls ist alles in Ordnung. Sobald die Statusleiste erstellt wurde, kann AddStatusBarField() zum Definieren der verschiedenen Abschnitte der Leiste benutzt werden.

Unterstützte OS

Windows, Linux

StatusBar - Inhaltsverzeichnis


FreeStatusBar()

Syntax

FreeStatusBar(#StatusBar)

Beschreibung

Gibt die angegebene Statusleiste frei.

Unterstützte OS

Windows, Linux

StatusBar - Inhaltsverzeichnis


StatusBarIcon()

Syntax

StatusBarIcon(#StatusBar, Field, ImageID)

Beschreibung

Fügt ein Icon zum angegebenen Feld 'Field' hinzu. Das Icon wird links vom Feldtext angezeigt. Das Icon muss im 16x16 Format vorliegen. 'ImageID' kann einfach mittels LoadImage() oder UseImage() ermittelt werden.

Unterstützte OS

Windows, Linux

StatusBar - Inhaltsverzeichnis


StatusBarText()

Syntax

StatusBarText(#StatusBar, Feld, Text$, Aussehen)

Beschreibung

Ändert den Text des angegebenen 'Felds' der '#StatusBar'. 'Aussehen' wird benutzt, um das Aussehen des Felds zu verändern und kann folgende Werte annehmen:

0: Standard, gedrückt mit Rändern
1: ohne Ränder
2: "erhobene" Ränder
4: zentriert den Text im Feld
8: richtet den Text am rechten Rand des Felds aus

Die Optionen können mittels dem '|' (OR) Operator kombiniert werden: 8 | 1 ergibt ein randloses Feld mit dem Text am rechten Rand ausgerichtet.

Unterstützte OS

Windows, Linux

StatusBar - Inhaltsverzeichnis


UpdateStatusBar()

Syntax

UpdateStatusBar(#StatusBar)

Beschreibung

Passt die Größe der angegebenen Statusleiste an die (neuen) Dimensionen des zugehörigen Fensters an. Dieser Befehl wird typischerweise nach einem #PB_EventSizeWindow aufgerufen.

Unterstützte OS

Windows, Linux

StatusBar - Inhaltsverzeichnis


String

PureBasic - String

Einleitung

Ein String ist eine Möglichkeit, um eine ganze Reihe von Zeichen zu speichern. Mit den Befehlen dieser Library können Sie einige wichtige Aktionen mit den Strings ausführen.

Befehlsübersicht

Asc
Chr
FindString
Hex
LCase
Left
Len
Mid
ReplaceString
Right
Str
StrF
StrU
StripLead
StripTrail
UCase
Val
ValF

Beispiel

String.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


Asc()

Syntax

Ascii = Asc(String$)

Beschreibung

Ermittelt den ASCII Wert des ersten Zeichens im String$.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Chr()

Syntax

Text$ = Chr(ASCII Wert)

Beschreibung

Gibt das zum angegebenen ASCII Wert gehörende Zeichen zurück.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


FindString()

Syntax

Position = FindString(String$, Suchstring$, StartPosition)

Beschreibung

Versucht den 'Suchstring$' im angegebenen 'String$' beginnend an der angegebenen 'StartPosition' zu finden. Wurde der String gefunden, wird dessen Position (in Anzahl der Zeichen, beginnend bei 1) zurückgegeben. Wurde der String nicht gefunden, gibt die Funktion 0 zurück.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Hex()

Syntax

Result$ = Hex(Wert)

Beschreibung

Konvertiert eine numerische Zahl in einen String im Hexadezimal-Format.

Beispiel:

a$ = Hex(12) ; a$ ergibt "C"

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


LCase()

Syntax

Result$ = LCase(String$)

Beschreibung

Gibt den originalen String - konvertiert in Kleinbuchstaben (wenn möglich) - zurück. Diese Funktion unterstützt auch Buchstaben mit Betonung; wenn also ein großes 'É' gefunden wurde, wird dieses in ein kleines 'é' konvertiert.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Left()

Syntax

Result$ = Left(String$, Länge)

Beschreibung

Gibt die angegebene Anzahl an Zeichen ('Länge') vom linken Rand des 'String$' zurück. Diese Funktion ist auch sicher zu benutzen, wenn ein falscher Wert für den Längen-Parameter angegeben wurde, und gibt immer das am 'besten' passende Resultat zurück.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Len()

Syntax

Length = Len(String$)

Beschreibung

Ermittelt die Anzahl Zeichen im angegebenen 'String$'.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Mid()

Syntax

Result$ = Mid(String$, StartPosition, Länge)

Beschreibung

Ermittelt einen String der angegebenen 'Länge', beginnend bei 'StartPosition', aus dem vorgegebenen 'String$'. Der Wert von 'StartPosition' beginnt bei 1, was das erste Zeichen kennzeichnet. 'Länge' ist die benötigte Länge des Ausgabestrings 'Result$'.

Beispiel:

Mid("Hello", 2, 3) ; Resultat wird "ell" sein.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


ReplaceString()

Syntax

String$ = ReplaceString(String$, SuchString$, ErsatzString$ [, Modus])

Beschreibung

Versucht alle Vorkommen des 'SuchString$' im angegebenen 'String$' zu finden und ersetzt diese mit dem 'ErsatzString$'.

'Modus' ist optional und kann eine Kombination der folgenden Werte sein:

1: Suche unabhängig von Groß-/Kleinschreibung (A=a). Standardmäßig beachtet die Suche die Groß-/Kleinschreibung.
2: "In place" (an Ort und Stelle) ersetzen. Dies bedeutet, dass der String direkt im Speicher ersetzt wird. Der 'SuchString$' und der 'ErsatzString$' müssen die gleiche Länge haben ! Dies ist eine gefährliche Option, nur für fortgeschrittene Anwender. Der Vorteil ist die sehr hohe Geschwindigkeit beim Ersetzen.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Right()

Syntax

Result$ = Right(String$, Länge)

Beschreibung

Gibt die angegebene Anzahl an Zeichen ('Länge') vom rechten Rand des 'String$' zurück. Diese Funktion ist auch sicher zu benutzen, wenn ein falscher Wert für den Längen-Parameter angegeben wurde, und gibt immer das am 'besten' passende Resultat zurück.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Str()

Syntax

Result$ = Str(Wert)

Beschreibung

Konvertiert eine Zahl in einen String.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


StrF()

Syntax

Result$ = StrF(Wert.f [, NbDecimal])

Beschreibung

Konvertiert eine Fließkomma-Zahl in einen String. Eine maximale Zahl an Dezimalstellen kann angegeben werden. Die Zahl wird nicht gerundet, sondern abgeschnitten.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


StrU()

Syntax

Result$ = StrU(Wert, Typ)

Beschreibung

Konvertiert eine vorzeichenlose Zahl in einen String.

Die folgenden 'Typen' sind möglich:

#Byte: Der Wert ist eine Byte-Zahl, im Bereich von 0 bis 255
#Word: Der Wert ist eine Word-Zahl, im Bereich von 0 bis 65536
#Long: Der Wert ist eine Long-Zahl, im Bereich von 0 bis 4294967296

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


StripLead()

Syntax

Result$ = StripLead(String$)

Beschreibung

Entfernt alle Leerzeichen ('space') vom Anfang des Strings.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


StripTrail()

Syntax

Result$ = StripTrail(String$)

Beschreibung

Entfernt alle Leerzeichen ('space') vom Ende des Strings.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


UCase()

Syntax

Result$ = UCase(String$)

Beschreibung

Gibt den originalen String - konvertiert in Großbuchstaben (wenn möglich) - zurück. Diese Funktion unterstützt auch Buchstaben mit Betonung; wenn also ein 'é' gefunden wurde, wird dieses in ein großes 'É' konvertiert.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


Val()

Syntax

Result.l = Val(String$)

Beschreibung

Wandelt einen String in einen numerischen Wert um. Der String muss ein Integer-Wert im Dezimalformat sein.

Beispiel:

Result = Val("1024") ; Result wird mit 1024 gefüllt.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


ValF()

Syntax

Result.f = ValF(String$)

Beschreibung

Wandelt einen String in eine Fließkomma-Zahl um. Der String muss eine Fließkomma-Zahl im Dezimal-Format sein.

Beispiel:

Result.f = ValF("10.24") ; Result wird mit 10.24 gefüllt.

Unterstützte OS

Windows, AmigaOS, Linux

String - Inhaltsverzeichnis


SysTray

PureBasic - SysTray

Einleitung

SysTray ist der rechte Abschnitt der MS Windows Taskleiste, welcher einige Icons und Datum/Uhrzeit enthält. PureBasic bietet vollen Zugriff auf diesen Bereich und erlaubt das Hinzufügen einer beliebigen Anzahl von Bildern.

Befehlsübersicht

AddSysTrayIcon
ChangeSysTrayIcon
RemoveSysTrayIcon
SysTrayIconTooltip

Beispiel

SysTray.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


AddSysTrayIcon()

Syntax

AddSysTrayIcon(#SysTrayIcon, WindowID, ImageID)

Beschreibung

Fügt ein Icon in den SysTray Bereich hinzu. WindowID muss eine gültige WindowID() sein. ImageID muss ein zuvor (mittels LoadImage()) geladenes Bild sein; bei diesem Befehl werden jedoch nur ICON (.ico) Bilder unterstützt. UseImage() kann benutzt werden, um einfach diese ID zu bekommen.

Wenn ein Ereignis auf irgendeinem der SysTray Icons auftritt, wird ein #PB_EventSysTray Ereignis zurückgegeben. EventGadgetID() kann benutzt werden, um das benutzte SysTrayIcon zu ermitteln. Die EventMouseButton() und DoubleClick()Befehle werden ebenfalls durch diesen Befehl aktualisiert.

Hinweis: Alle SysTray Icons werden automatisch am Programmende entfernt.

Unterstützte OS

Windows

SysTray - Inhaltsverzeichnis


ChangeSysTrayIcon()

Syntax

ChangeSysTrayIcon(#SysTrayIcon, ImageID)

Beschreibung

Ändert das angegebene Icon im SysTray Bereich. ImageID muss ein zuvor (mittels LoadImage()) geladenes Bild sein, es werden aber nur Bilder vom ICON Typ (.ico) bei diesem Befehl unterstützt. UseImage() kann benutzt werden, um einfach diese ID zu ermitteln.

Hinweis: Alle SysTray Icons werden automatisch am Programmende entfernt.

Unterstützte OS

Windows

SysTray - Inhaltsverzeichnis


RemoveSysTrayIcon()

Syntax

RemoveSysTrayIcon(#SysTrayIcon)

Beschreibung

Entfernt das angegebene #SysTrayIcon.

Unterstützte OS

Windows

SysTray - Inhaltsverzeichnis


SysTrayIconTooltip()

Syntax

SysTrayIconTooltip(#SysTrayIcon, Text$)

Beschreibung

Assoziiert den angegebenen Text$ mit dem SysTray Icon. Ein ToolTip-Text ist ein Text, welcher (in einer kleinen gelben Box) angezeigt wird, wenn der Mauspfeil eine Weile über dem Icon verharrt.

Hinweis: Alle SysTray Icons werden automatisch am Programmende entfernt.

Unterstützte OS

Windows

SysTray - Inhaltsverzeichnis


Thread

PureBasic - Thread

Einleitung

Ein Thread ist ein Programmteil, welcher asynchron, d.h. im Hintergrund des Hauptprogramms, läuft. Dies bedeutet: es ist möglich, langwierige Operationen (Packen, Bildverarbeitung...) durchzuführen, ohne das gesamte Programm anzuhalten und damit dem Benutzer das Weiterarbeiten zu ermöglichen. Wenn das Hauptprogramm beendet wird, werden alle Threads zerstört. Unter PureBasic sind Threads einfach eine Prozedur, welche asynchron aufgerufen wird. Der Thread läuft, bis die Prozedur endet.

Befehlsübersicht

CreateThread
KillThread
PauseThread
ResumeThread
ThreadPriority

Beispiel

Thread.pb

Unterstützte OS

Windows

Referenz-Handbuch - Inhaltsverzeichnis


CreateThread()

Syntax

ThreadID = CreateThread(@ProcedureName(), Wert)

Beschreibung

Erstellt einen neuen Thread, welcher im Hintergrund der Applikation läuft. Wenn der Thread korrekt erstellt wurde, wird die 'ThreadID' zurückgegeben, welche zusammen mit den anderen Befehlen, wie KillThread(), PauseThread(), etc..., benutzt wird. Die Prozedur muss im nachfolgenden Format erstellt werden:

Procedure DeineProzedur(Wert)
EndProcedure

Das Argument 'Wert' bei CreateThread() wird an den 'Wert' Parameter der Prozedur übergeben.

Unterstützte OS

Windows

Thread - Inhaltsverzeichnis


KillThread()

Syntax

KillThread(ThreadID)

Beschreibung

Zerstört den angegebenen Thread, der zuvor mit CreateThread() erstellt wurde. Dies ist eine sehr gefährliche Operation, benutzen Sie sie sofern möglich nicht.

Unterstützte OS

Windows

Thread - Inhaltsverzeichnis


PauseThread()

Syntax

PauseThread(ThreadID)

Beschreibung

Hält den angegebenen Thread an, der zuvor mit CreateThread() erstellt wurde. Der Thread kann mittels ResumeThread() fortgesetzt werden.

Unterstützte OS

Windows

Thread - Inhaltsverzeichnis


ResumeThread()

Syntax

ResumeThread(ThreadID)

Beschreibung

Setzt den angegebenen Thread fort, welcher zuvor mittels PauseThread()angehalten wurde.

Unterstützte OS

Windows

Thread - Inhaltsverzeichnis


ThreadPriority()

Syntax

OldPriority = ThreadPriority(ThreadID, Priorität)

Beschreibung

Ändert die 'Priorität' des angegebenen Threads und gibt die alte Priorität zurück. Der Wert von 'Priorität' kann zwischen 1 und 32 liegen. 1 ist die niedrigste Priorität, 16 ist die normale Priorität und 32 ist die zeitkritische Priorität (die höchste Priorität; bitte benutzen Sie diese nicht, außer Sie wissen was Sie tun). Wird als neue Priorität 0 übergeben, dann wird die Priorität nicht verändert (nützlich um nur die Priorität des Threads zu ermitteln, aber nicht zu verändern).

Unterstützte OS

Windows

Thread - Inhaltsverzeichnis


ToolBar

PureBasic - ToolBar

Einleitung

Die Toolbars (Werkzeugleisten) sind sehr nützlich, um mit Hilfe von kleinen Icons schnellen Zugriff auf einige Funktionen der Applikation zu erhalten. Die Icons sind oftmals 'Shortcuts' von Menüpunkten. PureBasic ermöglicht die Erstellung einer beliebigen Zahl von Toolbars und deren Handhabung als wären es Menüs.

Befehlsübersicht

AttachToolBar
CreateToolBar
DetachToolBar
DisableToolBarButton
ToolBarImageButton
ToolBarSeparator
ToolBarStandardButton
ToolBarToolTip

Beispiel

ToolBar.pb

Unterstützte OS

Windows, Linux

Referenz-Handbuch - Inhaltsverzeichnis


AttachToolBar()

Syntax

AttachToolBar(#ToolBar, WindowID)

Beschreibung

Verbindet die angegebene '#Toolbar' mit dem angegebenen Fenster 'WindowID' und zeigt diese an. Um eine Toolbar zu entfernen, benutzen Sie einfach den DetachToolBar() Befehl.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


CreateToolBar()

Syntax

Result = CreateToolBar(#ToolBar)

Beschreibung

Erstellt eine leere Toolbar, welche über die Nummer '#Toolbar' identifiziert wird. Diese Toolbar wird die aktuelle Toolbar, zu der mit den Befehlen ToolBarStandardButton() und ToolBarSeparator() einige Elemente hinzugefügt werden können. Ist 'Result' gleich 0, konnte die Toolbar nicht erstellt werden, andernfalls ist alles in Ordnung.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


DetachToolBar()

Syntax

DetachToolBar(#ToolBar)

Beschreibung

Entfernt die angegebene #Toolbar von ihrem zugehörigen Fenster. Die Toolbar wird dabei nicht zerstört, somit kann sie später oder bei einem anderen Fenster wieder benutzt werden.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


DisableToolBarButton()

Syntax

DisableToolBarButton(#ButtonID, Status)

Beschreibung

Aktiviert oder deaktiviert den angegebenen Toolbar-Schalter: Ist 'Status' gleich 0, wird der Schalter aktiviert. Ist 'Status' gleich 1, wird der Schalter deaktiviert.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


ToolBarImageButton()

Syntax

ToolBarImageButton(#ButtonID, ImageID)

Beschreibung

Fügt einen Image-Schalter (Bild-Schalter) zur konstruierten ToolBar hinzu. CreateToolBar() muss vor Benutzung dieses Befehls aufgerufen werden. Die 'ImageID' kann einfach mittels UseImage() bzw. ImageID()aus der Image Library ermittelt werden. Sie kann entweder eine Icon oder BMP Datei sein.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


ToolBarSeparator()

Syntax

ToolBarSeparator()

Beschreibung

Fügt der zu konstruierenden Toolbar einen vertikalen Balken (Seperator) hinzu. Vor diesem Befehl muss CreateToolBar() aufgerufen worden sein.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


ToolBarStandardButton()

Syntax

ToolBarStandardButton(#ButtonID, #ButtonIcon)

Beschreibung

Fügt der zu konstruierenden Toolbar einen Standard-Schalter hinzu. Vor diesem Befehl muss CreateToolBar() aufgerufen worden sein. Ein Standard-Schalter ist ein Icon, welches direkt im OS verfügbar ist. Der '#ButtonIcon' Parameter muss eine der folgenden Konstanten sein:

#PB_ToolBarIcon_New
#PB_ToolBarIcon_Open
#PB_ToolBarIcon_Save
#PB_ToolBarIcon_Print
#PB_ToolBarIcon_Find
#PB_ToolBarIcon_Replace

#PB_ToolBarIcon_Cut
#PB_ToolBarIcon_Copy
#PB_ToolBarIcon_Paste
#PB_ToolBarIcon_Undo
#PB_ToolBarIcon_Redo

#PB_ToolBarIcon_Delete
#PB_ToolBarIcon_Properties
#PB_ToolBarIcon_Help

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


ToolBarToolTip()

Syntax

ToolBarToolTip(#ButtonID, Text$)

Beschreibung

Verknüpft den angegebenen 'Text$' mit der aktuellen ToolBar '#ButtonID'. Ein ToolTip-Text ist ein Text, der (in einer kleinen gelben Box) angezeigt wird, wenn der Mauszeiger eine Weile über einem Gadget verharrt.

Unterstützte OS

Windows, Linux

ToolBar - Inhaltsverzeichnis


Window

PureBasic - Window

Einleitung

Fenster (Windows) sind unerlässliche Bestandteile moderner Benutzeroberflächen. PureBasic gewährt Ihnen vollen Zugriff darauf.

Befehlsübersicht

ActivateWindow
CloseWindow
DetachGadgetList
DetachMenu
EventGadgetID
EventMenuID
EventType
EventWindowID
HideWindow
MoveWindow
OpenWindow
ReSizeWindow
SetWindowCallback
UseWindow
WaitWindowEvent
WindowEvent
WindowHeight
WindowID
WindowMouseX
WindowMouseY
WindowOutput
WindowWidth
WindowX
WindowY

Beispiel

Window.pb

Unterstützte OS

Windows, AmigaOS, Linux

Referenz-Handbuch - Inhaltsverzeichnis


ActivateWindow()

Syntax

ActivateWindow()

Beschreibung

Aktiviert das aktuelle Fenster und zeigt dieses im Vordergrund an.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


CloseWindow()

Syntax

CloseWindow(#Window)

Beschreibung

Schließt das angegebene Fenster.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


DetachGadgetList()

Syntax

DetachGadgetList()

Beschreibung

Entfernt - sofern eine solche vorhanden ist - die Gadgetliste vom aktuellen Fenster. Beachten Sie bitte, dass dabei der Fensterinhalt nicht neu gezeichnet wird, sodass Sie die Gadgets immer noch sehen können. Sie können diese jedoch nicht mehr benutzen (es ist sozusagen nur noch deren Abbild sichtbar). Sie können eine Kombination von DetachGadgetList() und AttachGadgetList() benutzen, um die Gadgetliste eines Fensters während der Programmausführung ('on the fly') zu verändern.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


DetachMenu()

Syntax

DetachMenu()

Beschreibung

Entfernt das Menü vom aktuell benutzten Fenster. Dies wird oft benutzt, um das Menü-Layout zu ändern und das neue Menü mit AttachMenu() wieder am Fenster "anzubringen" (re-attach).

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


EventGadgetID()

Syntax

#Gadget = EventGadgetID()

Beschreibung

Benutzen Sie diese Funktion nach einem WindowEvent() oder WaitWindowEvent() Befehl, um den gedrückten Schalter bestimmen zu können (gibt die #Gadget Nummer zurück).

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


EventMenuID()

Syntax

#Menu = EventMenuID()

Beschreibung

Benutzen Sie diese Funktion nach einem WindowEvent() oder WaitWindowEvent() Befehl, um den ausgewählten Menü-Eintrag bestimmen zu können (gibt die #MenuItem Nummer zurück).

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


EventType()

Syntax

Event = EventType()

Beschreibung

Nach einem WindowEvent() oder WaitWindowEvent() Befehl benutzen Sie diese Funktion, um den Typ des letzten Ereignisse festzustellen. EventType() ist jetzt eng verknüpft mit den Gadget und Systray Libraries und kann nach dem Auftreten eines Ereignisses folgende Werte zurückgeben:

#PB_EventType_LeftClick: Klick mit der linken Maustaste
#PB_EventType_RightClick: Klick mit der rechten Maustaste
#PB_EventType_LeftDoubleClick: Doppelklick mit der linken Maustaste
#PB_EventType_RightDoubleClick: Doppelklick mit der rechten Maustaste
#PB_EventType_ReturnKey: Eingabe von 'Return' in einem StringGadget().
#PB_EventType_Focus: wird zurückgegeben, wenn ein StringGadget() den Focus erhält.
#PB_EventType_LostFocus: wird zurückgegeben, wenn ein StringGadget() den Focus verliert.
#PB_EventType_Change: wird zurückgegeben, wenn sich der Inhalt eines StringGadget() ändert.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


EventWindowID()

Syntax

#Window = EventWindowID()

Beschreibung

Benutzen Sie diese Funktion nach einem WindowEvent() oder WaitWindowEvent() Befehl, um das Fenster bestimmen zu können, in dem ein Ereignis stattfand.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


HideWindow()

Syntax

HideWindow(#Window, Status)

Beschreibung

Versteckt oder zeigt das angegebene Fenster '#Window'. 'Status' kann folgende Werte annehmen:

1: das Fenster #Window ist versteckt
0: das Fenster #Window wird angezeigt

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


MoveWindow()

Syntax

MoveWindow(x, y)

Beschreibung

Verschiebt das Fenster an die angegebenen Koordinaten. Die Koordinaten beziehen sich auf die linke obere Bildschirm-Ecke, beginnend mit (0,0).

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


OpenWindow()

Syntax

WindowID = OpenWindow(#Window, x, y, InnereBreite, InnereHöhe, Flags, Titel$)

Beschreibung

Öffnet ein neues Fenster entsprechend den übergegebenen Parametern. Das neue Fenster wird auch automatisch zum aktiven Fenster. Sie müssen dafür also nicht erst den UseWindow() Befehl benutzen. Ergibt die 'WindowID' gleich 0, konnte das Fenster nicht geöffnet werden. 'InnereBreite' und 'InnereHöhe' definieren die innere Fenstergröße (ohne Ränder und andere Fensterdekorationen), um die Windows XP, AmigaOS und Linux "Skinning" Kompatibilität zu gewährleisten.

Mögliche Flags sind:

#PB_Window_SystemMenu: Schaltet das System-Menü in der Fenster-Titelzeile ein.
#PB_Window_MinimizeGadget: Fügt das Minimieren-Gadget der Fenster-Titelzeile hinzu. #PB_Window_System wird automatisch hinzugefügt.
#PB_Window_MaximizeGadget: Fügt das Maximieren-Gadget der Fenster-Titelzeile hinzu. #PB_Window_System wird automatisch hinzugefügt.
#PB_Window_SizeGadget: Fügt das Größenänderungs-Gadget zum Fenster hinzu.
#PB_Window_Invisible: Erstellt ein Fenster, zeigt es aber nicht an. Wird nicht unter AmigaOS unterstützt.
#PB_Window_TitleBar: Erstellt ein Fenster mit einer Titelzeile.
#PB_Window_BorderLess: Erstellt ein Fenster ohne jegliche Ränder.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


ReSizeWindow()

Syntax

ReSizeWindow(Breite, Höhe)

Beschreibung

Ändert die Größe des Fensters auf die angegebenen Werte (Breite, Höhe).

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


SetWindowCallback()

Syntax

SetWindowCallback(@ProcedureName())

Beschreibung

Nur für erfahrene Programmierer. Diese Funktion wird nur unter dem Microsoft Windows OS unterstützt. Normale Ereignisse (Events) sollten mit den regulären Befehlen WaitWindowEvent()oder WindowEvent() verarbeitet werden. Dieser Befehl assoziiert einen Callback ("Rückruf") um die Events des aktuellen Fensters zu verarbeiten. Alle Ereignisse werden durch diesen Callback abgefangen und können hier verarbeitet werden. Eine Warnung - dieser Weg ist "low-level" und der Debugger kann während dieser Periode nicht benutzt werden. Die Callback Prozedur muss 4 Parameter haben. Hier ist ein Beispiel-Code, wie ein Callback richtig benutzt wird:

DisableDebugger
Procedure MyWindowCallback(WindowID, Message, wParam, lParam)
; Ihr Programmcode hier
EndProcedure
EnableDebugger

Unterstützte OS

Windows

Window - Inhaltsverzeichnis


UseWindow()

Syntax

UseWindow(#Window)

Beschreibung

Macht das angegebene Fenster zum aktuell-benutzten ('currently-used') Fenster.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WaitWindowEvent()

Syntax

Event = WaitWindowEvent()

Beschreibung

Wartet bis ein Ereignis auftritt. Es ist die selbe Funktion wie WindowEvent(), hält aber die Programmausführung an, was sehr wichtig in einer Multitasking Umgebung ist. Eine Applikation sollte möglichst immer diesen Befehl anstelle von WindowEvent()benutzen. Für weitere Informationen, sehen Sie die Dokumentation zu WindowEvent()

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowEvent()

Syntax

Event = WindowEvent()

Beschreibung

Überprüft, ob in irgendeinem der geöffneten Fenster ein Ereignis stattfand. Diese Funktion kehrt umgehend zum Programmablauf zurück, seien Sie also vorsichtig, um nicht die gesamte CPU Power mit einer Schleife ohne Wartefunktion ('non temporized loop') zu verschwenden... Um die Programmausführung bis zum Stattfinden eines Ereignisses anzuhalten, benutzen Sie einfach den WaitWindowEvent() Befehl. Um die Fenster-Nummer, in dem das Ereignis stattfand, bestimmen zu können, müssen Sie die EventWindowID() Funktion benutzen.

Mögliche Ereignisse sind:

#PB_EventMenu : ein Menü wurde ausgewählt
#PB_EventGadget : ein Gadget wurde gedrückt
#PB_EventCloseWindow : das Schließgadget vom Fenster wurde gedrückt
#PB_EventRepaint : der Fensterinhalt wurde zerstört und muss neu gezeichnet werden (nützlich für 2D Grafik-Operationen)
#PB_EventMoveWindow : das Fenster wurde verschoben

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowHeight()

Syntax

Höhe = WindowHeight()

Beschreibung

Ermittelt die Höhe, in Pixel, des aktuellen Fensters.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowID()

Syntax

WindowID = WindowID()

Beschreibung

Ermittelt die einmalige ID, welche das Fenster im Betriebssystem (OS) identifiziert. Diese Funktion ist sehr nützlich, wenn eine andere Library einen Bezug zu einem Fenster benötigt.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowMouseX()

Syntax

x = WindowMouseX()

Beschreibung

Ermittelt die Maus-Position relativ zum linken Rand des aktuellen Fensters. Der Wert kann negativ sein, wenn sich der Mauszeiger außerhalb des Fensters befindet.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowMouseY()

Syntax

y = WindowMouseY()

Beschreibung

Ermittelt die Maus-Position relativ zum oberen Rand des aktuellen Fensters. Der Wert kann negativ sein, wenn sich der Mauszeiger außerhalb des Fensters befindet.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowOutput()

Syntax

OutputID = WindowOutput()

Beschreibung

Gibt die 'OutputID' des aktuell benutzten Fensters zurück, um darauf 2D-Zeichenoperationen auszuführen. Hierfür wird die PureBasic 2DDrawing Library (siehe StartDrawing()) benutzt.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowWidth()

Syntax

Breite = WindowWidth()

Beschreibung

Ermittelt die Breite, in Pixel, des aktuellen Fensters.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowX()

Syntax

x = WindowX()

Beschreibung

Ermittelt die Position, in Pixel, des linken Randes des aktuellen Fensters.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


WindowY()

Syntax

y = WindowY()

Beschreibung

Ermittelt die Position, in Pixel, des oberen Randes des aktuellen Fensters.

Unterstützte OS

Windows, AmigaOS, Linux

Window - Inhaltsverzeichnis


Bestellen von PureBasic

PureBasic ist eine LowCost Programmiersprache. Durch den Kauf von PureBasic sichern Sie, dass die Entwicklung weiter und schneller geht. Für die private Benutzung (d.h. nicht durch eine kommerzielle Organisation oder Firma) sind Updates unbegrenzt, anders als bei der meisten anderen erhältlichen Software. Dies bedeutet, wenn Sie PureBasic kaufen, erhalten Sie alle zukünftigen Updates kostenfrei, auf dieser Web-Seite. Besser noch, Sie bekommen die drei Versionen von PureBasic (Amiga, Linux und Windows) für den gleichen Gesamt-Preis ! Zum einfachen Bestellen, können Sie auch unsere sichere Online - Bestellmöglichkeit nutzen. Vielen Dank für Ihre Unterstützung !

Die Demo-Version von PureBasic ist wie folgt eingeschränkt:

- Nur 5 externe Bibliotheken (Linked list, Menu, Requester, String und Window) können geladen werden (fortgeschrittene Funktionen stehen nicht zur Verfügung).
- Sie können die gesamte externe Win32 API Unterstützung nicht verwenden.
- kein Entwicklerpaket für externe Bibliotheken
- maximale Anzahl von Zeilen des Programmcodes: 200

Preis : 59 Euro

Ihre Bestellung und Bezahlung (per französischem Scheck oder Euro-Scheck) richten Sie bitte an diese Adresse:

Fantaisie Software
10, rue de Lausanne
67640 Fegersheim
Frankreich

Für Besteller aus Deutschland besteht zusätzlich die Möglichkeit, ihre Bestellung an das deutsche Team-Mitglied zu senden. Sie können für Ihre Bestellung EC-Scheck, Bar-Geld (auf eigenes Risiko) oder die Vorab-Überweisung wählen. Senden Sie Ihre Bestellung unter Angabe Ihrer kompletten Postanschrift und ggf. EMail-Adresse an die folgende Adresse:

André Beer
Siedlung 6
09548 Deutschneudorf
Deutschland

Bankverbindung:
Volksbank Mittleres Erzgebirge
Konto 421200 - BLZ 87069075

Bezahlung online (http://www.purebasic.com) ist ebenfalls möglich und sehr sicher.

Eine Vollversion wird per EMail oder Schnecken-Post unverzüglich zugesandt. Bitte geben Sie Ihren bevorzugten Versandweg an. Sie können auch eines dieser beiden Bestellformulare benutzen: Bestellung bei Fantaisie Software bzw. Bestellung bei André Beer. Drucken Sie das Formular aus und senden Sie es an die entsprechend angegebene Adresse.


Wie erreichen Sie das Team ?

Kontakt

Bitte senden Sie Bug-Reports; Vorschläge; Verbesserungen; Beispiele für Quellcodes, oder, falls Sie einfach so mit uns kommunizieren wollen, benutzen Sie bitte irgendeine der folgenden Adressen:

- Frédéric 'AlphaSND' Laboureur

Fred 'AlphaSND' ist der Gründer von Fantaisie Software, und der Haupt-Programmierer von PureBasic. Alle Vorschläge, Bug-Reports usw. sollten zu ihm an die nachfolgende Adresse gesandt werden:

Briefe:

Frédéric Laboureur
10, rue de Lausanne
67640 Fegersheim
Frankreich

Email : alphasnd@purebasic.com

- Richard Andersson

Richard ist ein sehr talentierter Programmierer, der Fred geholfen hat, die umfangreichen und mächtigen Assembler Sub-Bibliotheken zu entwickeln, die für PureBasic (hauptsächlich in der Amiga-Version) gebraucht werden. Brauchen Sie eine neue Bibliothek? Nehmen Sie mit ihm Kontakt auf:

Email : richard@purebasic.com

- André Beer

André ist zuständig für die komplette deutsche Übersetzung der PureBasic Anleitung und der Homepage. Über ihn kann PureBasic auch direkt in Deutschland bestellt werden.

Email : andre@purebasic.com


Die Dankeschön-Liste:

Danksagungen

Wir möchten uns bei vielen Leuten bedanken, die uns bei diesem ambitionierten Projekt geholfen haben. Es wäre nicht ohne sie möglich gewesen !

- Registrierte Benutzer: Für die Unterstützung dieser Software... Vielen Dank !

- Roger BEAUSOLEIL: Der Erste, der an dieses Projekt glaubte, und für seine unschätzbare Hilfe beim Grund-Design und Layout von PureBasic.

- Andre BEER: Für seine Zeit, alle Guides ins Deutsche zu übersetzen. Vielen Dank.

- Francis G. LOCH: Welcher alle Fehler in den englischen Guides korigierte ! Danke noch einmal.

- Steffen HAEUSER: Für seine wertvolle Zeit und Hilfe. Für seine unschätzbaren Erklärungen betreffs der Aspekte der PPC Programmierung und seinen sehr nützlichen Tipps.

- Martin KONRAD: Ein fantastischer Bug-Reporter für die Amiga-Version. Für die Erstellung der zukünftigen visuellen Entwicklungsumgebung für PureBasic und einige nette Spiele...

- James L. BOYD: Für das Auffinden von tonnenweise Bugs in der x86 Version, der uns damit auch tonnenweise Arbeit verschaffte :). Bleib dabei bei der Bug-Suche !

- LES: Für das Erstellen der englischen Fantaisie Software Website & und diesem Guide. Dieses sieht viel besser aus!

- NAsm team: Für den unglaublichen x86 Assembler, der für die Entwicklung der PureBasic Bibliotheken benutzt wurde.

- Jacob NAVIA:Für den exzellenten Linker (aus dem Lcc32 Paket), der zur Zeit von PureBasic benutzt wird.

- Thomas RICHTER: For creating "PoolMem." A patch that decreases the compilation time by a factor of 2-3! Many thanks for allowing it to be added to the main archive.

- Frank WILLE: Für die Erlaubnis, Deine ausgezeichneten Assembler "pasm" und "PhxAss" benutzen zu dürfen. Für alle Deine Tips und die unschätzbare Hilfe bei ihrem Gebrauch. Für seine großartige Hilfe beim Debuggen der PowerPC Executables.

- NAsm Team: Für den unglaublichen x86 Assembler, der für die Entwicklung der PureBasic Bibliotheken benutzt wurde

- Frank WILLE: Für die Erlaubnis, Deine ausgezeichneten Assembler "pasm" und "PhxAss" benutzen zu dürfen. Für alle Deine Tips und die unschätzbare Hilfe bei ihrem Gebrauch. Für seine großartige Hilfe beim Debuggen der PowerPC Executables.

- Thomas RICHTER: Für das Erschaffen von "PoolMem." Ein Patch, mit dem die Kompilierungs-Zeit um den Faktor von 2-3 abnimmt! Vielen Dank für Deine Erlaubnis, diesen zum Hauptarchiv hinzufügen zu dürfen.

- LES: Für das Erstellen der englischen Fantaisie Software Website & und diesem Guide. Dieses sieht viel besser aus!


PureBasic Geschichte

Geschichte

6. Mai 2002 : Version 3.10

- Hinzugefügt: Preference Library: OpenPreferences(), CreatePreferences(), ReadPreferenceLong/Float/String(), WritePreferenceLong/Float/String(), PreferenceComment(), PreferenceGroup()
- Hinzugefügt: Windows XP Skinning Support (siehe 'Compiler-Optionen' Fenster)
- Hinzugefügt: GadgetX(), GadgetY(), GadgetWidth(), GadgetHeight(), GetGadgetItemState(), SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText(), CountGadgetItems(), TrackBarGadget(), IPAddressGadget()
- Hinzugefügt: HideWindow(), RandomSeed(), MakeIPAddress(), IPAddressField()
- Hinzugefügt: MouseWheel(), CatchSprite(), SaveSprite()
- Hinzugefügt: RotateSprite3D(), ZoomSprite3D(), TransformSprite3D(), Sprite3DQuality(), Sprite3DBlendingMode()
- Hinzugefügt: EventType(): Return/Änderungen/Fokus kann ermittelt werden bei StringGadget(), ComboBox() und anderen
- Hinzugefügt: CatchImage(), CreatePack(), ClosePack(), NextPackFile(), AddPackFile(), AddPackMemory(), PackFileSize(), OpenPack()
- Hinzugefügt: DirectoryEntrySize(), DirectoryEntryAttributes()
- Hinzugefügt: Volle Kompatibilität mit 'WindowBlinds' auf WinXP, welches möglicherweise den Event-Handler zerstörte !

- Optimiert: PureLibraries (Nur benutzte Befehle werden im Executable eingebunden) : Image, Misc2, GadgetExtension, Requester, Sprite3D, Memory, Packer

- Aktualisiert: CompareMemoryString(): einen optionalen 'Länge' Parameter hinzugefügt.
- Aktualisiert: DisplayPopupMenu(): (x,y) sind jetzt optional
- Aktualisiert: ResizeGadget(): die Übergabe von '-1' an eines der Argumente führt zu dessen Ignorierung (sehr nützlich für "resizeable" GUIs)
- Aktualisiert: GetGadgetText() und TextGadgetText() arbeiten jetzt zusammen mit TreeGadget() und ListIconGadget()
- Aktualisiert: AddGadgetItem() hat jetzt einen optionalen "Image" (Bild) Parameter.
- Aktualisiert: OpenWindow(): fügt jetzt die Größe der Fensterränder automatisch hinzu, um das "Skinning" Problem unter WinXP zu beheben
- Aktualisiert: FileSize() gibt jetzt die Größe für alle Dateien zurück, sogar für gesperrte ("locked") Dateien

- Entfernt: InitGadget(): wird nicht mehr benötigt.
- Entfernt: DoubleClick() und EventMouseButtons(): benutzen Sie stattdessen EventType()
- Entfernt: OpenDefaultConsole(): OpenConsole() stellt jetzt automatisch fest, ob sich das Programm im 'Console' oder 'Windows' Format befindet.
- Entfernt: AddListIconGadgetItem() und AddTreeGadgetItem(): AddGadgetItem() wird jetzt benutzt
- Entfernt: ExpandTreeGadgetItem() und TreeGadgetItemState(): Set/GetGadgetItemState() werden jetzt benutzt

- Repariert: Gadget Ereignisse (Events) für ComboBox, ListIcon und Systray.
- Repariert: Mögliche Speicherfehler mit Strings in besonderen Situationen
- Repariert: Possible bug when using Procedures as callbacks
- Repariert: Create3DSprite(): Größe war 1 Pixel kleiner
- Repariert: Jedes Fenster hat jetzt seine eigene private Klasse
- Repariert: PlaySound(): Debugger-Routine fehlte und kleine Störung am Ende des Abspielvorgangs
- Repariert: ResizeGadget() zusammen mit PanelGadget und einige "Refresh" Probleme
- Repariert: FindString() auf Win9x
- Repariert: ExamineDirectory() Bug auf Win9x
- Repariert: Module Library, das Abspielen sollte jetzt überall funktionieren
- Repariert: SetGadgetText() für ListViewGadget()
- Repariert: SelectedFontColor()
- Repariert: Blöder Bug bei DeleteElement()
- Repariert: NewList xxxx() alleine produzierte einen Linker Fehler
- Repariert: Bug beim Drucken von Bildern
- Repariert: Random() Befehl (nochmals !)
- Repariert: ResizeImage() auf Win9x
- Repariert: IncludeBinary Bug (bisher funktionierten nur absolute Pfade)
- Repariert: Editor: Tab wurde schlecht verarbeitet. Kleiner Farbfehler beim Einfügen.

4. April 2002 : Version 3.00

- Hinzugefügt: Library PureLibrary: OpenLibrary(), IsFunction(), CallFunction(), CloseLibrary()
- Hinzugefügt: Help PureLibrary: OpenHelp(), CloseHelp()
- Hinzugefügt: Clipboard PureLibrary: ClearClipboard(), GetClipboardText(), GetClipboardData(), SetClipboardData(), SetClipboardText()
- Hinzugefügt: ElseIf
- Hinzugefügt: Wenn eine Bedingung (If/While...) nicht vor ENDPROCEDURE abgeschlossen wurde, zeigt der Compiler eine Fehlermeldung.
- Hinzugefügt: ToolBarToolTip()
- Hinzugefügt: SpritePixelCollision()
- Hinzugefügt: Timer PureLibrary (Danke an Danilo): StartTimer(), EndTimer(), GetMinTimerResolution(), GetMaxTimerResolution()
- Hinzugefügt: ComDX PureLibrary (Danke an Danilo): CallCOM(), CallDX()
- Hinzugefügt: Printer PureLibrary: NewPrinterPage(), PrinterOutput(), PrintRequester(), StartPrinting(), StopPrinting(), PrinterPageWidth(), PrinterPageHeight()
- Hinzugefügt: Variable Befehls-Argumente für jede Funktion
- Hinzugefügt: Declare und DeclareDLL, um Prozeduren vor Ihrer eigentlichen (inhaltlichen) Defininierung zu deklarieren
- Hinzugefügt: CopyMemoryString(), MemoryStringLength(), CompareMemory(), ReAllocateMemory(), CompareMemoryString()
- Hinzugefügt: CopyImage(), ResizeImage(), GrabImage()
- Hinzugefügt: MovieStatus(), MovieLength()
- Hinzugefügt: SoundVolume(), SoundPan(), SoundFrequency(), CatchSound()
- Hinzugefügt: FirstDatabaseRow(), PreviousDatabaseRow()
- Hinzugefügt: CreatePalette(), GetPaletteColor(), SetPaletteColor(), UsePalette()
- Hinzugefügt: RGB(), ReplaceString(), StrU(), StrF(), ValF()
- Hinzugefügt: HideGadget(), GadgetID()
- Hinzugefügt: Niederländischer Catalog für den Editor

- Aktualisiert: Brandneue Library-Architektur, um NUR benötigte Befehle in das endgültige Executable einzubinden. Zur Zeit sind noch nicht alle Libraries soweit optimiert, um diese Funktion zu benutzen. Aber dies wird passieren, in naher Zukunft :). Außerdem benutzen alle Libraries das Standard STDCALL Format, somit gibt es keine umgekehrte Argumentreihenfolge mehr.. Alte Libraries sind jedoch weiterhin voll kompatibel.
- Aktualisiert: StopSound(): Die Übergabe von '-1' stoppt alle gerade abgespielten Sounds.
- Aktualisiert: PlaySound(): Der Flags Parameter ist jetzt optional.
- Aktualisiert: Sort(): es kann jetzt ein zu sortierender Bereich definiert werden (z.B.: von den Elementen 20 bis 50 eines Arrays).
- Aktualisiert: Resident Datei: #VK_xx Konstanten hinzugefügt, einige Strukturen repariert.

- Geändert: Intern werden die Parameter von Prozeduren jetzt in der richtigen Reihenfolge verarbeitet. Warnung: alle Callbacks müssen geändert werden, um dies zu berücksichtigen. Dies bedeutet auch, dass DLL Prozedur-Parameter in der richtigen Reihenfolge übergeben werden können.
- Geändert: InitSound() benötigt keinen "Maximum Sound" Parameter mehr.
- Geändert: Namensänderung von BackColour(), FrontColour() und TransparentSpriteColour() in BackColor(), FrontColor() und TransparentSpriteColor()

- Repariert: Compiler Absturz beim Verwenden von konstanten Strings, mehr Überprüfungen durch den Preprocessor
- Repariert: StartDrawing() Bugs
- Repariert: Random(), um bessere Zufallszahlen zu erhalten.
- Repariert: GetDatabaseString() beim Erhalten von Null-Werten
- Repariert: ExamineDirectory(): Fehler auf Win9x Systemen unter speziellen Umständen
- Repariert: Resident Problem. Jetzt werden Anwender-Residents geladen.
- Repariert: Editor Bug, welcher das Eingeben von speziellen Zeichen (oberhalb von 128 in der ASCII Tabelle) verhinderte und einige weitere Bugs.
- Repariert: FPU Bug, welcher das korrekte Arbeiten von OpenGL verhinderte.
- Repariert: 'Debug' Befehl: akzeptiert jetzt Fließkomma- und String-Funktionen ohne Probleme.

- Entfernt: Mr. Skunk PureLibraries, da einige fehlerhaft waren und wir nicht im Besitz der Sourcecodes sind, um diese zu reparieren.

24. Februar 2002 : Version 2.95

Hinweis: Dies ist eine "Bug-fix" Veröffentlichung vor dem Erscheinen der neuen 3.0. Nur sehr wenige Veränderungen.

- Hinzugefügt: HtmlHelp Support zur Suche in der Hilfe + anderen Goodies. Die alten HTML Dateien können gefahrlos gelöscht werden.

- Repariert: Compiler Bugs (Float Variablen innerhalb eines Structure Arrays, XIncludeFile, 'a' Konstanten unter manch seltenen Umständen, Bug bei Ausdrücken, Konstanten-Verdopplung und die Integration der Image Library beim Benutzen mit Sprites, Speicherverlust in String-Prozuduren)
- Repariert: LoadJPGSprite Bug
- Repariert: Editor Farben-Problem mit normalen Textfarben

27. Januar 2002 : Version 2.90

- Hinzugefügt: DLL Erstellung !
- Hinzugefügt: Konstanten können jetzt Strings oder Fließkomma (Float) sein.
- Hinzugefügt: Fehlersuche jetzt mit DebugLevel Befehlen innerhalb des Debugger-Fensters.
- Hinzugefügt: Italienische Editorsprachdatei von Yuri.

- Geändert: Variablen, Arrays, LinkedList und Konstanten sind jetzt "case insensitive".

- Repariert: PathRequester(), OpenFileRequester(), SaveFileRequester()
- Repariert: ExamineDirectory() kleiner Bug
- Repariert: GetDatabaseFloat()
- Repariert: Compiler Crash auf Windows NT4 Sp6a.

13. Januar 2002 : Version 2.82

- Hinzugefügt: PeekF(), PokeF()
- Hinzugefügt: Math Library: ACos(), ASin(), ATan(), Pow(), Log(), Log10(), Round(), Cos(), Sin(), Tan(), Abs(), Sqr(), Int()
- Hinzugefügt: SpriteOutput(): ermöglicht die Nutzung der 2DDrawing Befehle auf allen Sprites !
- Hinzugefügt: #PB_WindowInvisible

- Repariert: Compiler Bugs (a.l = Pow(), a = -16/Variable)
- Repariert: ein Bug in OpenDatabaseRequester(), welcher das Öffnen der Datenbank mit einigen ODBC Treibern (MySQL...) verhindert
- Repariert: FrontColour() Bug, welcher DX und ganze Systemcrashs verursachte...
- Repariert: SaveImage() speichert immer in 24 Bit anstelle von 32 Bit
- Repariert: ListViewGadget() benutzt jetzt die exakte Höhe des Gadgets, nicht mehr nur eine gerundete
- Repariert: SysTrayIconToolTip() verursacht keinen Crash mehr, wenn der angegebene Text länger als 64 Zeichen ist
- Repariert: ListIconGadget(): zerstört nicht mehr die Icons nach FreeGadget()
- Repariert: ChangeListIconGadgetDiplay(): Refresh erfolgt automatisch
- Repariert: Hintergrundfarbe der Fenster unter Windows XP

- Geändert: StrF(Zahl) in StrF(Zahl, Präzision)

01. Januar 2002 : Version 2.80 ("Happy New Year" - Veröffentlichung)

Compiler:
- Update: Compiler-Kernel von Grund auf neu programmiert: komplexe Ausdrücke sind möglich
- Update: Code-Ausgabe optimiert
- Hinzugefügt: /REASM Compiler Flag, um das Reassemblieren nach Modifizierungen zu ermöglichen.
- Hinzugefügt: Möglichkeit, Float Variablen bei API Aufrufen zu benutzen.
- Repariert: Float Support (Vergleiche, Prozeduren, Abs(), Sin() etc..)
- Repariert: alle bekannten Bugs

Libraries:
- Hinzugefügt: Sprite3D Library: Create3DSprite(), Display3DSprite(), Transform3DSprite(), Free3DSprite(), Start3D(), Stop3D()
- Hinzugefügt: SaveImage()
- Hinzugefügt: Debugger Routine für alle Befehle
- Repariert: ExamineDirectory()
- Repariert: OpenFile() (die Lese-Funktion arbeitete nicht)

Editor:
- Hinzugefügt: QuickHelp ("schnelle Hilfe") für die meisten Befehle
- Hinzugefügt: Direktaufruf von Prozeduren
- Hinzugefügt: Windows XP farbkompatibel und Support für Themen
- Repariert: blöder Bug beim Ersetzen

28. November 2001 : Version 2.70

- Hinzugefügt: ChangeSysTrayIcon(), SysTrayIconToolIip(), ExpandTreeGadgetItem(), TreeGadgetItemState()
- Hinzugefügt: DisableMenuItem(), GadgetToolTip(), StatusBarIcon()
- Hinzugefügt: UseGadgetList(), TransparentSpriteColor(), ClipSprite(), CopySprite(), GrabSprite()
- Hinzugefügt: ProgramParameter()
- Hinzugefügt: Thread Library
- Hinzugefügt: '!' Unterstützung, um "rohe" ASM Befehle in den Sourcecode einzufügen (werden direkt durch NAsm verarbeitet)
- Hinzugefügt: Multilevel (100) Undo/Redo im Editor
- Hinzugefügt: Farbiger Syntax beim Einfügen (Jaa ;-)

- Update: StatusBarText(): 2 Flags für das Ausrichten (Zentriert & Rechts)
- Update: ReadData() gibt jetzt die Anzahl gelesener Bytes zurück
- Update: Der Debugger ist jetzt ein Thread mit hoher Priorität (viel besser einsetzbar)

- Geändert: PlaySound(), einen Flag für fortwährendes Abspielen (Looping) hinzugefügt
- Geändert: SetStatusBarText() -> StatusBarText()
- Geändert: InitSprite(): den Sprite Parameter entfernt

- Repariert: DatabaseQuery(), GetPathPart(), LoadSprite() (kann jetzt Sprites beliebiger Größe laden)
- Repariert: CloseScreen(): kann jetzt zwischen Vollbild- (Fullscreen) und Fenstermodus (Windowed) ohne Probleme umschalten. Cool.
- Repariert: Compiler Bugs (MultiArray in Prozeduren, Einlesen von Daten in Prozeduren)
- Repariert: Flickering im Editor

5. November 2001 : Version 2.60

Hinzugefügt: CopyMemory(), CatchJPEGSprite(), LoadJPEGSprite(), WindowMouseX(), WindowMouseY()
Hinzugefügt: MovieSeek(), MovieInfo(), DrawImage(), ScreenOutput(), WindowOutput(), ImageOutput(), CreateImage()
Hinzugefügt: Database Library
Hinzugefügt: Packer Library
Hinzugefügt: Console Library (von Sylvain)
Hinzugefügt: Möglichkeit, die 2DDrawing Library direkt auf Bildschirmen von Spielen zu nutzen
Hinzugefügt: XOR und Fill/Outline Modus für die 2D Drawing Funktionen
Hinzugefügt: -1 Feature bei FreeMemory(), um alle Bänke mit einem Aufruf freizugeben.
Hinzugefügt: Neue Flags bei RunProgram(): synchrones Starten und Möglichkeit das gestartete Programm zu verstecken.
Hinzugefügt: Mächtiger ASM-Monitor im Debugger (in einer Basic Sprache !)
Hinzugefügt: Variablen-Anzeiger im Debugger

Geändert: Alle alten MemoryBank Funktionen umbenannt.
Geändert: ReadMemory() und WriteMemory() umbenannt -> ReadData(), WriteData() (für bessere Logik zusammen mit anderen Befehlen)
Geändert: Das Purebasic Library Format (siehe das SDK für weitere Informationen)
Geändert: DrawingOutput() wurde umbenannt in StartDrawing() und benötigt keine WindowID() mehr (stattdessen WindowOutput(), ScreenOutput() oder ImageOutput()
Geändert: Eof() benutzt jetzt einen Parameter..

Repariert: StopModule() (den #Module Parameter entfernt)
Repariert: Einen kleinen Compiler Bug
Repariert: PlayMovie()
Repariert: Debugger während dem Benutzen von ASM Befehlen in PureBasic
Repariert: Clipboard EINFÜGEN innerhalb des Editors verändert nicht mehr den Zeichensatz des Editors

23. September 2001 : Version 2.50

- Mouse Library hinzugefügt
- Movie Library hinzugefügt
- Sort Library hinzugefügt
- DisplayTranslucideSprite(), DisplayAlphaSprite(), DisplayShadowSprite(), DisplayRGBFilter(), ChangeAlphaIntensity(), ClearScreen(), OpenWindowedScreen(), DisplaySolidSprite(), CloseScreen(), SetFrameRate(), IsScreenActive(), StartSpecialFX(), StopSpecialFX(), ResizeGadget(), JoystickAxisX(), JoystickAxisY(), ChangeGamma(), SetWindowCallback(), Red(), Green(), Blue() hinzugefügt
- Procedure Adresse hinzugefügt (@ProcedureName())
- Unterstützung für das 'Console' Executable Format hinzugefügt

- Änderung bei LoadSprite()
- Änderung bei DisplayPalette (Screen-Argument entfernt)
- Änderung bei ExamineJoystick()
- Änderung bei OpenScreen (Text$ Parameter hinzugefügt)
- Änderung bei FontRequester (anfänglicher Fontname und -größe hinzugefügt)
- Änderung bei Frame3DGadget (Stil-Flag für Rahmen hinzugefügt)

- Große Fehler in den DirectX Routinen (Sprite, Keyboard, Movie) bereinigt. Jetzt laufen alle sehr gut im Multitasking !
- Repariert: Icon-Support für ToolBar und Image Library
- Repariert: SelectedFontName()
- Repariert: ClearGadgetItemList(), wenn es zusammen mit TreeGadget() benutzt wird
- Repariert: LoadFont() (falsche Y-Größe)

Editor:

- Hinzugefügt: optionales Autosave (automatisches Speichern) vor dem Compilieren
- Hinzugefügt: Unterstützung für beliebige Zeichensätze
- Hinzugefügt: Einschalten/Ausschalten der Syntax-Einfärbung
- Hinzugefügt: 2 neue Komponenten beim Einfärben: 'Normaler Text' und 'Prozeduren/Befehle'
- Hinzugefügt: Sprachen-, Zeichensatz- und Farbänderung in Echtzeit
- Hinzugefügt: neues 'About' Fenster, viel besser jetzt ;-)

- Aktualisiert: Ultra-schnelles Syntax-Highlighting beim Laden einer Sourcecode Datei
- Aktualisiert: Art des Syntax-Highlighting geändert (viel besser)

1. August 2001 : Version 2.40

- Befehle für Data Unterstützung hinzugefügt: Read, Restore, Data, DataSection, EndDataSection
- Fließkomma-Zahlen Unterstützung (in einem frühen Status)
- MemoryBank Library hinzugefügt
- StatusBar Library hinzugefügt
- Image Library hinzugefügt
- Systray Library hinzugefügt
- Viele neue Befehle hinzugefügt:: EventlParam(), EventwParam(), ListIndex(), ListCount()
ChangeCurrentElement(), ToolBarImageButton(), EventMouseButton(), UseDirectory()
- CreatePopupMenu() und DisplayPopupMenu() hinzugefügt
- TreeGadget(), ImageGadget(), ButtonImageGadget(), AddTreeGadgetItem() hinzugefügt
- ListIconGadget(), AddListIconGadgetItem(), ChangeListIconGadgetDisplay(), AddGadgetColumn() hinzugefügt

- Änderung des Standard-Typs von 'Word' (16 Bit) in 'Long' (32 Bit)
- Änderung: WaitWindowEvent()/WindowEvent() geben jetzt alle Window Ereignisse zurück !
- Änderungen bei: ComboBoxGadget(), PanelGadget() und ListViewGadget()
- Änderung: ExamineDirectory() -> Anzahl hinzugefügt, um das Untersuchen mehrerer Verzeichnisse zur selben Zeit zu ermöglichen

- Repariert: CopyFile() (Überschreiben funktionierte nicht)
- Repariert: FrontColour() (Text-Farbe änderte sich nicht..)
- Repariert: GetGadgetState(), SetGadgetState() und RemoveGadgetItem() zur Unterstützung des PanelGadget

- InitWindow(), InitRequester(), InitToolBar(), InitFont(), InitFile() und InitMenu() entfernt (Initialisierung erfolgt jetzt automatisch)

17. Mai 2001 : Version 2.30

- Zum Editor hinzugefügt: Drag & Drop auf dem Hauptfenster, automatische Registry Unterstützung für .pb Dateien, automatisches Einrücken, Tab/Shift+Tab um einen markierten Block einfach einzurücken.
- Tonnen neuer Befehle hinzugefügt: GetGadgetState(), SetGadgetState(), AddGadgetItem(), RemoveGadgetItem(), ClearGadgetItemList() PanelGadget(), ClosePanelGadget(), TextGadget(), SpritesCollision(), Delay(), OptionGadget(), Frame3DGadget() Loc(), PeekW/B(), PokeW/B(), GetPathPart(), GetFilePart(), RunProgram(), DoubleClick(), PathRequester()
- 'Tab' Unterstützung zur Gadget Bibliothek hinzugefügt.
- Compiler-Anweisungen hinzugefügt: CompilerIf/Else/Endif, CompilerSelect/Case/Default/EndSelect
- CD-Audio Bibliothek hinzugefügt
- FileSystem Bibliothek hinzugefügt
- Added a build-in ICON linker (no more need GoRC)
- Debugger verbessert (Schritt für Schritt / 'Step by Step' arbeitet jetzt perfekt)
- Optimierung der generierten Executable (kleiner und schneller)
- Vollständige Neuprogrammierung des Compiler Ausdruck-Prozessors-Kerns
- Einige garstige Bugs im Compiler beseitigt
- Compiler und Editor Größen reduziert (90 Kb anstelle 148 Kb und 33 Kb anstelle von 96 Kb)
- LSR, LSR in die betreffenden << und >> geändert
- AddComboBoxItem() und AddListViewItem() in das gemeinsame AddGadgetItem() geändert
- Tonnen kleiner Verbesserungen und Bug-Fixes, zu umfangreich alle einzeln aufzuführen

25. März 2001 : Version 2.20

- Debugger Laufzeit (Runtime) Unterstützung für alle Pure Bibliotheken hinzugefügt. Ein Programm stürzt jetzt nicht mehr so einfach ab. Es ist jetzt viel einfacher, Bugs aufzuspüren !
- NT4.0 Unterstützung bei den Multimedia Bibliotheken (Sprite, Palette, Sound & Keyboard) hinzugefügt, welches auch die Entwicklung von auf NT4.0 laufenden Spielen oder Multimedia-Anwendungen ermöglicht !
- Einige neue Funktionen hinzugefügt: Lof(), ReadMemory(), WriteMemory(), PeekS(), PokeS(), NetworkClientEvent(), SetGadgetFont(), WaitWindowEvent(), FileSeek()
- Eine brandneue Module Bibliothek hinzugefügt, die einfaches Abspielen von ProTracker, FastTracker oder ImpulseTracker Modulen ermöglicht.
- Speichern von Projekteinstellungen für jede Datei hinzugefügt (Executable Name, Compiler-Einstellungen etc...)
- Einstellungs-Fenster zum einfachen Konfigurieren des Editors hinzugefügt (Farbe, Standard-Verzeichnis etc..)
- Mehrsprachen-Unterstützung (Englisch, Französisch und Deutsch) für den Editor hinzugefügt
- Icon (.ico) Unterstützung beim Erstellen eines Executable hinzugefügt !
- Win32 Hilfe-Support (beim Drücken von F1 über einer Windows-Funktion) hinzugefügt)
- Viele Bug-Fixes am Compiler, dieser ist jetzt viel zuverlässiger.
- Aktualisierung der Dokumentation

26 Februar 2001 : Version 2.10

- Added the debugger to walk easy trough a program. It features step by step, stop, continue, quit (useful to quit an infine loop...) and can be invoqued and controlled via the source code with the following commands: CallDebugger, EnableDebugger, DisableDebugger
- Improved the editor a lot: contextual help (F1 on a keyword), Goto, Compiler Options, much better syntaxe highlightning, '.prefs' file
- Added new commands: ListViewGadget(), AddListViewItem(), GetGadgetText(), SetGadgetText(), PeekS(), SizeOf()
- Multilangage added to the editor (French, German, English)
- Microsoft Windows © resident file added containing all the constants and structures needed for easy OS programming under PureBasic.
- Fixed lot of bugs and improved the whole stability

17. Dezember 2000 : Version 2.00 - Final release

- Bereinigung aller bekannten Bugs, die 2D Drawing Library hinzugefügt und einige wesentliche Verbesserungen

28. November 2000 : Version 2.00 PR 3

- Bereinigung der mit DirectX zusammenhängenden Fehler
- Eingebauter Editor (Syntax-Highlighting und direkter Zugriff auf den Compiler!)
- 2 neue Bibliotheken hinzugefügt (Requester und ToolBar)

12. November 2000 : Version 2.00 PR 2

- Vielzahl an Fehlern wurde bereinigt. Danke an alle Bug-Reporter :)
- 6 neue Bibliotheken hinzugefügt (Sprite, Joystick, Keyboard, Sound, Network und Palette)

22. Oktober 2000 : Version 2.00 PR 1

- Erstes öffentliches Release von PureBasic x86. Nur für Testzwecke.


Registration form:

         To: Fantaisie Software
             10, rue de Lausanne
             67640 Fegersheim
             France

     ********************************* PureBasic x86 ****************************

            I would like to purchase the full version of PureBasic.

     Price per copy: 59 Euro

     Name:    _________________________________________________________

     Address: _________________________________________________________

              _________________________________________________________

              _________________________________________________________

     Country: _________________________________________________________

     Phone:   _________________________________________________________

     EMail:  _________________________________________________________

     All requested information is considered private and personal. It will not be
     distributed for any reason by Fantaisie Software.

     I am sending the shareware donation via (please mark as appropriate):-

       ( ) Euro cheque. The safer/cheaper method for all European people.

       ( ) Other methods? Prior approval required via EMail. (Approvals will be
           kept as confirmation pending receipt of the registration form).

     Please send me the full programme via (please mark as required):-

       ( ) EMail (MIME encoded file)

       ( ) Snail Mail (on CD-Rom)

     I have read the terms and conditions and agree to abide by them.

     __________________     ________________________________________

         Date                              Signature

     Notes about PureBasic:


Registrierformular

Bitte senden an:                    == PureBasic x86 - BESTELLFORMULAR ==
----------------                      »» Feel the ... Pure ... Power ««
                                      *** * * *** *** **  *** *** ** ***
 Beer Productions                     * * * * * * **  *** * * **  ** *
 André Beer                           **  * * **  *   * * ***  ** ** *
 Siedlung 6                           *   *** * * *** **  * * *** ** ***
 09548 Deutschneudorf                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 Germany                             EMail:   andre@purebasic.com
                                     Support: http://www.purebasic.com
 -------------------------------------------------------------------------
|  => Meine Adresse (vollständige Angaben sind unbedingt erforderlich)    |
|                                                                         |
|                                                                         |
|  Vorname + Name:  ____________________________________________          |
|                                                                         |
|  Straße + Nr.:    ____________________________________________          |
|                                                                         |
|  PLZ + Ort:       ____________________________________________          |
|                                                                         |
|  Land:            ____________________________________________          |
|                                                                         |
|  Telefon:         ____________________________________________          |
|                                                                         |
|  EMail:           ____________________________________________          |
|                                                                         |
|                                                                         |
|  Hinweis:    Der Datenschutz für alle erbetenen Informationen wird      |
|              gewährleistet. Keinerlei Daten werden durch Fantaisie      |
|              Software weitergegeben.                                    |
|-------------------------------------------------------------------------|
| Ja, ich bestelle hiermit die aktuelle Vollversion von PureBasic - der   |
| neuen Basic-Programmiersprache für Windows 95/98/Me bzw. Win NT/2000    |
|                                                                         |
|      Preis pro Stück:   59,00 Euro                                      |
|                                                                         |
|         O  per "Schneckenpost" (auf CDRom)                              |
|                                                                         |
|         O  per EMail (UU-MIME kodierte Datei)                           |
|                                                                         |
| Hinweis: Beer Productions fungiert nur als deutsche Registrations-Site. |
|          Dies soll die Registrierung insbesondere für deutsche User     |
|          vereinfachen. Wir leiten Bestellungen + Geld umgehend weiter.  |
|          Die Auslieferung des Programms erfolgt direkt durch den Autor: |
|  Frederic Laboureur, 10 rue de Lausanne, 67640 Fegersheim, Frankreich   |
|-------------------------------------------------------------------------|
| Zahlungsweise:     O  Betrag liegt in bar anbei  (auf eigenes Risiko)   |
|                    O  Betrag liegt als Euro-/EC-Scheck bei              |
|                    O  Betrag wurde überwiesen auf  Konto 42 12 00,      |
|                       BLZ 870 690 75, Volksbank Mittleres Erzgebirge    |
|-------------------------------------------------------------------------|
| Ich habe die rechtlichen Erläuterungen in der Anleitung gelesen und bin |
| mit ihnen einverstanden.                                                |
|                                                                         |
|   Datum: _______________     Unterschrift: ________________________     |
|-------------------------------------------------------------------------|
| Vorschläge für PureBasic:                                               |
|                                                                         |
| _______________________________________________________________________ |
|                                                                         |
| _______________________________________________________________________ |
|                                                                         |
| _______________________________________________________________________ |
|                                                                         |
 -------------------------------------------------------------------------


Benutzung des SHELL-Compilers

Der Shell-Compiler befindet sich im Unterordner 'Compilers\' des PureBasic Verzeichnisses. Eine einfachere Möglichkeit ist das Hinzufügen dieses Verzeichnisses zur Windows 'PATH Variable' , um von überall Zugriff auf die Befehle in diesem Verzeichnis zu haben. Verschiedene Optionen können beim Start des Compilers angegeben werden :

/? : zeigt einen kurzen Hilfstext über den Compiler an.

/COMMENTED : erstellt eine kommentierte '.asm' Ausgabedatei beim Erstellen des Executable. Diese Datei kann später re-assembliert werden, wenn die notwendigen Modifikationen erfolgt sind. Diese Option ist nur für fortgeschrittene Programmierer bestimmt.

/DEBUGGER : schaltet die Debugger Unterstützung ein.

/EXE "Dateiname" : erstellt ein ausführbares Programm ('standalone executable') mit dem angegebenen Dateinamen.

/ICON "IconName" : fügt das angegebene Icon zum Executable hinzu.

/INLINEASM : schaltet das Inline-Asm Feature ein (Asm-Routinen können direkt im BASIC Sourcecode geschrieben werden).

/RESIDENT "Dateiname" : erstellt eine Resident-Datei mit dem angegebenen Dateinamen.

/CONSOLE: erstellt das Executable im Console Format. Das Standard-Format ist Win32.

/NT4: Schaltet die NT4 Enable the NT4 Kompatibilität für Multimedia-Funktionen (Sprite, Keyboard, Mouse) ein.

/DLL: die Ausgabedatei wird eine DLL

/REASM: Reassembliert die PureBasic.asm Datei in ein Executable. Dies ermöglicht die Benutzung der /COMMENTED Funktion, das anschließende Modifizieren der ASM Ausgabe und das erneute Kompilieren des Executable.

/QUIET: Schaltet alle unnötige Text-Ausgabe ab, sehr nützlich bei Verwendung eines anderen Editors.

Beispiel :

1) PBCompiler sourcecode.pb

Der Compiler kompiliert den Sourcecode und führt ihn aus.

2) PBCompiler sourcecode.pb /DEBUGGER /INLINEASM

Der Compiler kompiliert den Sourcecode und führt ihn mit Debugger und Inline-Asm Unterstützung aus.


PureBasic - Index

A
ACos
ASin
ATan
Abs
ActivateGadget
ActivateWindow
AddElement
AddGadgetColumn
AddGadgetItem
AddPackFile
AddPackMemory
AddStatusBarField
AddSysTrayIcon
AllocateMemory
Asc
AttachMenu
AttachToolBar
B
BackColor
Blue
Box
ButtonGadget
ButtonImageGadget
C
CDAudioLength
CDAudioName
CDAudioStatus
CDAudioTrackLength
CDAudioTrackSeconds
CDAudioTracks
CallFunction
CallFunctionFast
CatchImage
CatchJPEGSprite
CatchSound
CatchSprite
ChangeAlphaIntensity
ChangeCurrentElement
ChangeGamma
ChangeListIconGadgetDisplay
ChangeSysTrayIcon
CheckBoxGadget
Chr
Circle
ClearClipboard
ClearConsole
ClearGadgetItemList
ClearList
ClearScreen
ClipSprite
CloseConsole
CloseDatabase
CloseFile
CloseFont
CloseHelp
CloseLibrary
CloseNetworkConnection
CloseNetworkServer
ClosePack
ClosePanelGadget
ClosePreference
CloseScreen
CloseSubMenu
CloseTreeGadgetNode
CloseWindow
ColorRequester
ComboBoxGadget
CompareMemory
CompareMemoryString
ConsoleColor
ConsoleCursor
ConsoleLocate
ConsoleTitle
CopyFile
CopyImage
CopyMemory
CopyMemoryString
CopySprite
Cos
CountGadgetItems
CountList
CreateDirectory
CreateFile
CreateGadgetList
CreateImage
CreateMenu
CreateNetworkServer
CreatePack
CreatePalette
CreatePopupMenu
CreatePreferences
CreateSprite3D
CreateStatusBar
CreateThread
CreateToolBar
D
DatabaseColumnName
DatabaseColumnType
DatabaseColumns
DatabaseDriverDescription
DatabaseDriverName
DatabaseQuery
Delay
DeleteElement
DeleteFile
DetachGadgetList
DetachMenu
DetachToolBar
DirectoryEntryAttributes
DirectoryEntryName
DirectoryEntrySize
DisableGadget
DisableMenuItem
DisableToolBarButton
DisplayAlphaSprite
DisplayPalette
DisplayPopupMenu
DisplayRGBFilter
DisplayShadowSprite
DisplaySolidSprite
DisplaySprite
DisplaySprite3D
DisplayTranslucideSprite
DisplayTransparentSprite
DrawImage
DrawText
DrawingFont
DrawingMode
E
EjectCDAudio
Ellipse
Eof
EventGadgetID
EventMenuID
EventType
EventWindowID
ExamineDatabaseDrivers
ExamineDirectory
ExamineJoystick
ExamineKeyboard
ExamineMouse
F
FileSeek
FileSize
FindString
FirstDatabaseRow
FirstElement
FlipBuffers
FontID
FontRequester
Frame3DGadget
FreeGadget
FreeImage
FreeMemory
FreeMenu
FreeModule
FreeMovie
FreePalette
FreeSound
FreeSprite
FreeSprite3D
FreeStatusBar
FrontColor
G
GadgetHeight
GadgetID
GadgetToolTip
GadgetWidth
GadgetX
GadgetY
GetClipboardData
GetClipboardText
GetDatabaseFloat
GetDatabaseLong
GetDatabaseString
GetFilePart
GetGadgetItemState
GetGadgetItemText
GetGadgetState
GetGadgetText
GetModulePosition
GetModuleRow
GetPaletteColor
GetPathPart
GrabImage
GrabSprite
Green
H
Hex
HideGadget
HideWindow
I
IPAddressField
IPAddressGadget
ImageDepth
ImageGadget
ImageHeight
ImageID
ImageOutput
ImageWidth
Init3DSprite
InitCDAudio
InitDatabase
InitJoystick
InitKeyboard
InitModule
InitMouse
InitMovie
InitNetwork
InitPalette
InitSound
InitSprite
Inkey
Input
InsertElement
IsFunction
IsScreenActive
J
JoystickAxisX
JoystickAxisY
JoystickButton
K
KeyboardPushed
KillThread
L
LCase
LastElement
Left
Len
Line
ListIconGadget
ListIndex
ListViewGadget
LoadFont
LoadImage
LoadJPEGSprite
LoadModule
LoadMovie
LoadPalette
LoadSound
LoadSprite
Loc
Locate
Lof
Log
Log10
M
MakeIPAddress
MemoryID
MemoryStringLength
MenuBar
MenuItem
MenuTitle
MessageRequester
Mid
MouseButton
MouseDeltaX
MouseDeltaY
MouseWheel
MouseX
MouseY
MoveWindow
MovieAudio
MovieHeight
MovieInfo
MovieLength
MovieSeek
MovieStatus
MovieWidth
N
NetworkClientEvent
NetworkClientID
NetworkServerEvent
NewPrinterPage
NextDatabaseDriver
NextDatabaseRow
NextDirectoryEntry
NextElement
NextPackFile
O
OpenConsole
OpenDatabase
OpenDatabaseRequester
OpenFile
OpenFileRequester
OpenHelp
OpenLibrary
OpenNetworkConnection
OpenPack
OpenPreferences
OpenScreen
OpenSubMenu
OpenTreeGadgetNode
OpenWindow
OpenWindowedScreen
OptionGadget
P
PackFileSize
PackMemory
PackerCallback
PanelGadget
PathRequester
PauseCDAudio
PauseMovie
PauseThread
PeekBWL
PeekF
PeekS
PlayCDAudio
PlayModule
PlayMovie
PlaySound
Plot
Point
PokeBWL
PokeF
PokeS
Pow
PreferenceComment
PreferenceGroup
PreviousDatabaseRow
PreviousElement
Print
PrintN
PrintRequester
PrinterOutput
PrinterPageHeight
PrinterPageWidth
ProgramParameter
ProgressBarGadget
R
RGB
Random
RandomSeed
ReAllocateMemory
ReSizeWindow
ReadByte
ReadData
ReadFile
ReadLong
ReadMemory
ReadPreferenceFloat
ReadPreferenceLong
ReadPreferenceString
ReadString
ReadWord
ReceiveNetworkData
ReceiveNetworkFile
ReceiveNetworkString
Red
ReleaseMouse
RemoveGadgetItem
RemoveSysTrayIcon
Rename
ReplaceString
ResetList
ResizeGadget
ResizeImage
ResizeMovie
ResumeCDAudio
ResumeMovie
ResumeThread
Right
RotateSprite3D
Round
RunProgram
S
SaveFileRequester
SaveImage
SaveSprite
ScreenOutput
SelectedFontColor
SelectedFontName
SelectedFontSize
SelectedFontStyle
SendNetworkData
SendNetworkFile
SendNetworkString
SetClipboardData
SetClipboardText
SetFrameRate
SetGadgetFont
SetGadgetItemState
SetGadgetItemText
SetGadgetState
SetGadgetText
SetModulePosition
SetPaletteColor
SetRefreshRate
SetWindowCallback
Sin
SortArray
SoundFrequency
SoundPan
SoundVolume
Sprite3DBlendingMode
Sprite3DQuality
SpriteCollision
SpriteDepth
SpriteHeight
SpriteOutput
SpritePixelCollision
SpriteWidth
Sqr
Start3D
StartDrawing
StartPrinting
StartSpecialFX
StatusBarIcon
StatusBarText
Stop3D
StopCDAudio
StopDrawing
StopModule
StopMovie
StopPrinting
StopSound
StopSpecialFX
Str
StrF
StrU
StringGadget
StripLead
StripTrail
SysTrayIconTooltip
T
Tan
TextGadget
TextLength
ThreadPriority
ToolBarImageButton
ToolBarSeparator
ToolBarStandardButton
ToolBarToolTip
TrackBarGadget
TransformSprite3D
TransparentSpriteColor
TreeGadget
U
UCase
UnpackMemory
UpdateStatusBar
UseCDAudio
UseDatabase
UseDirectory
UseFile
UseFont
UseGadgetList
UseImage
UseMemory
UseMovie
UsePalette
UseWindow
V
Val
ValF
W
WaitWindowEvent
WindowEvent
WindowHeight
WindowID
WindowMouseX
WindowMouseY
WindowOutput
WindowWidth
WindowX
WindowY
WriteByte
WriteLong
WriteMemory
WritePreferenceFloat
WritePreferenceLong
WritePreferenceString
WriteString
WriteStringN
WriteWord
Z
ZoomSprite3D


Compiler Direktiven

Syntax

CompilerIf  <Konstanten Ausdruck>
  ...
[CompilerElse]
  ...
CompilerEndIf

Beschreibung

Wenn das Ergebnis des <Konstanten Ausdrucks> wahr ergibt, wird der Programmcode innerhalb des 'If' Abschnitts kompiliert, andernfalls wird er total ignoriert. Dies ist nützlich beim Erstellen von Multi-OS (auf mehreren Betriebssystemen lauffähigen) Programmen, um einige Programmabschnitte mit OS-spezifischen Funktionen individuell zu gestalten.

Beispiel :

CompilerIf #OS = #Linux
  ; etwas Linux spezifischer Programmcode..
CompilerEndIf

Syntax

CompilerSelect  <nummerischer Wert>
  CompilerCase
    ...
  [CompilerElse]
    ...
  [CompilerDefault]
    ...
CompilerEndSelect

Beschreibung

Arbeitet exakt wie das reguläre Select : EndSelect, teilt aber dem Compiler mit, welcher Programmcode kompiliert werden soll. Dies ist nützlich beim Erstellen von Multi-OS (auf mehreren Betriebssystemen lauffähigen) Programmen, um einige Programmabschnitte mit OS-spezifischen Funktionen individuell zu gestalten.

Beispiel :

CompilerSelect #OS
  CompilerCase #AmigaOS
    ; etwas Amiga spezifischer Programmcode
 CompilerCase #Linux
    ; etwas Linux spezifischer Programmcode
CompilerEndSelect


Data

Einführung

PureBasic erlaubt die Benutzung von Data, um vordefinierte Blöcke mit Informationen innerhalb Ihres Programms zu speichern. Dies ist sehr nützlich für Standard-Werte eines Programmes (Sprachen-Strings zum Beispiel) oder, in einem Spiel, zum Definieren eines (vorberechneten) Sprite-Weges.
DataSection muss zuerst aufgerufen werden, um den nachfolgenden Data Abschnitt anzukündigen. Dies bedeutet, dass alle Sprungmarken (Labels) und Data Komponenten in der Data Sektion des Programmes gespeichert werden, welche einen viel schnelleren Zugriff als die Code Sektion hat. Data wird benutzt zum Eingeben der Daten. EndDataSection muss angegeben werden, wenn nach der Data Sektion weiterer Programmcode folgt. Einer der Vorteile ist, dass Sie ohne Probleme verschiedene Data Sektionen in ihrem Code definieren können. Die Restore und Read Befehle werden benutzt, um die Daten auszulesen.

Befehle

DataSection

Beginnt eine Data Sektion.

EndDataSection

Beendet eine Data Sektion.

Data.TypeName

Definiert Daten. Der Typ kann nur ein einfacher Basic Typ (Long, Word, Byte, Float, String) sein. Eine beliebige Anzahl Daten kann sich auf einer Zeile befinden, jede abgegrenzt durch ein Komma ','. Beispiel:
Data.l 100, 200, -250, -452, 145
Data.s "Hello", "This", "is ", "What ?"

Restore Label

Dieses Schlüsselwort ist nützlich, um die Startposition für ein nachfolgendes Read auf eine angegebene Sprungmarke (Label) zu setzen. Beispiel:
Restore StringData
Read MyFirstData$
Read MySecondData$
...
...

Restore NumericalData
Read a
Read b

...

DataSection

NumericalData:
  Data.l 100, 200, -250, -452, 145

StringData:
  Data.s "Hello", "This", "is ", "What ?"

Read

Liest die nächsten verfügbaren Daten ein. Die nächsten verfügbaren Daten können mittels dem Restore Befehl geändert werden. Standardmäßig sind die nächsten verfügbaren Daten die zuerst deklarierten Daten.


Debugger

RunTime Debugger

Einführung

Der PureBasic Runtime-Debugger ist ein externes Programm, welches die Ausführung eines Programms kontrolliert. Er kontrolliert und überwacht in Echtzeit alle - den Funktionen übergegebene - Parameter, verhindert verbotene Operationen (wie Division durch Null) und mehr. Mit PureBasic kann die Programmausführung angehalten und Schritt für Schritt analysiert werden, um alle Fehler aufzuspüren; und sie kann zu jeder Zeit unterbrochen werden! Dies kann sehr nützlich sein, wenn ein Programm in eine Endlosschleife verfällt. Und noch mehr, er erlaubt auch das Überwachen (Monitoring) von beliebigen Variablen und sogar ASM Registern, wenn 'Inline ASM Unterstützung einschalten' im Compiler-Optionen-Menü aktiviert ist.

Funktionen

Stop

Dies stoppt die Ausführung und zeigt die aktuelle Position im Programmcode an.

Cont

Dies setzt ein zuvor angehaltenes Programm fort.

Step

Dieser Schalter ermöglicht den Code nach und nach abzuarbeiten, d.h. Zeile für Zeile. Dies ist sehr nützlich, um Fehler aufzuspüren.

Asm

Zeigt ein ASM Monitoring Fenster mit allen CPU-Registern und CPU-Flags. Dies ist nur für erfahrene Programmierer, welche die ASM Sprache bereits kennen. Die 'Inline ASM Unterstützung einschalten' Option im Compiler-Menü muss aktiviert sein und der Debugger muss angehalten (mit STOP oder STEP) worden sein, um Zugriff auf dieses Fenster zu erhalten. Dieser Monitor ist nur nützlich beim Betrachten von Inline ASM, nicht bei normalem Basic Code. Ein cooles Feature ist die Möglichkeit, den Wert eines beliebigen Registers nach Drücken des Schalters 'Schreibe neuen Wert' verändern zu können.

Zeige Variablen

Zeigt ein Fenster, welches jede im Programm benutzte globale Variable anzeigt. Der Variablen Inhalt wird in Echtzeit aktualisiert, um einfach dem Programmablauf folgen zu können.

Zeige Ausgabe-Fenster

Zeigt ein Fenster, welches die Ausgabe des 'Debug' Befehls darstellt.

Exit

Dies beendet den Debugger, den Compiler, und jedes Programm im Falle von Problemen oder wenn eine "Endlosschleife" auf keinem anderen Weg gestoppt werden kann.

Die Debugger Schlüsselwörter in PureBasic

CallDebugger

Dies ruft den "Debugger" auf und hält sofort die Programmausführung an.

Debug <Ausdruck> [, DebugLevel]

Zeigt das DebugOutput Fenster und darin das Ergebnis. Der Ausdruck kann jeder gültige PureBasic Ausdruck sein, von numerisch bis zu einem String. Ein wichtiger Punkt ist, dass der Debug Befehl und sein zugehöriger Ausdruck total ignoriert (nicht kompiliert) werden, wenn der Debugger deaktiviert ist. Dies bedeutet, dass dieser Befehl benutzt werden kann, um einfach den Programmablauf zu verfolgen ("tracen"), ohne beim Erstellen des endgültigen Executable die Debug-Befehle auskommentieren zu müssen.

Der 'DebugLevel' ist die Prioritätsstufe der Debug-Mitteilung. Alle normalen Debug-Mitteilungen (ohne angegebenen DebugLevel) werden automatisch angezeigt. Wenn ein Level angegeben wurde, dann wird die Mitteilung nur angezeigt, wenn der aktuelle DebugLevel (definiert mit dem nachfolgenden 'DebugLevel' Befehl) gleich oder höher als dieser Wert ist. Dies ermöglicht einen hierarchischen Debug-Modus, indem mehr und mehr präzisere Informationen in Abhängigkeit vom benutzten DebugLevel angezeigt werden.

DebugLevel

Legt den aktuellen DebugLevel für die 'Debug' Mitteilung fest.

DisableDebugger

Dies schaltet die Debugger-Prüfroutinen bei nach diesem Befehl folgenden Sourcecode aus.

EnableDebugger

Dies schaltet die Debugger-Prüfroutinen bei nach diesem Befehl folgenden Sourcecode ein (wenn der Debugger vorher mittels DisableDebugger ausgeschalten wurde).


DefType

Syntax

Deftype.<type> [<variable>, <variable>,...]

Beschreibung

Wenn keine <Variablen> angegeben werden, wird DefType benutzt, um den Standardtyp ("Default type") für zukünftige typenlose Variablen festzulegen.

Beispiel:

  DefType.l
  a = b+c

a, b und c werden als Long-Typen (.l) definiert, da kein anderer Typ angegeben wurde.

Werden Variablen angegeben, deklariert DefType diese Variablen als "definierte Typen" (defined type) und ändert nicht den Standardtyp.

Beispiel:

  DefType.b a,b,c,d

a, b, c, d werden als Byte-Typen (.b) deklariert.


Dim

Syntax

Dim name.<type>(<expression>, [<expression>], ...)

Beschreibung

Dim wird benutzt, um die Größe neuer Arrays festzulegen. Ein Array in PureBasic kann von beliebigem Typ sein, einschließlich strukturierter und benutzerdefinierter Typen. Wenn ein Array einmal Dimensioniert wurde, kann es erneut dimensioniert werden, aber es sein Inhalt wird gelöscht. Arrays werden dynamisch allockiert (angelegt), was bedeutet, dass eine Variable oder ein Ausdruck benutzt werden kann, um sie erneut zu Dimensionieren.

Beispiel 1 :

Dim MyArray.l(41)
MyArray(0) = 1
MyArray(1) = 2

Beispiel 2 :

Dim MultiArray.b(NbColumns,NbLines)
MultiArray(10,20) = 10
MultiArray(20,30) = 20


Benutzung des integrierten Editors

Überblick

Der PureBasic Editor wurde speziell für die PureBasic Programmiersprache entwickelt und hat viele spezielle Features, die extra dafür geschaffen wurden. Er wird immer mächtiger werden und fortgeschrittenes Editieren, wie Wortergänzung, visuelle IDE etc.... unterstützen.

Grundlegende Benutzung:

Der PureBasic Editor akzeptiert alle Standard ASCII Zeichen, und lädt und speichert die Dateien im ASCII Format. Er benutzt alle Windows Standard Shortcuts (Tastenkürzel) zum Editieren des Textes:

Pfeiltasten : Bewegt den Cursor in die vier Richtungen
Shift + Pfeiltasten : Markiert den Text
Strg + Pos1 : Sprint an den Anfang des Sourcecodes
Strg + Ende : Springt an das Ende des Sourcecodes

Und nun die bedeutendsten Menü-Shortcuts:

Strg + S: Speichert den aktuellen Sourcecode ohne irgendeine Nachfrage
Strg + L: Lädt einen neuen Sourcecode
F1: Aktiviert das PureBasic Online-Handbuch (dieses Dokument). Wenn F1 über einem PureBasic oder Windows Schlüsselwort gedrückt wird, wird direkt zur Beschreibung des Schlüsselwortes verzweigt.
F5: Startet die Kompilierung und startet das Programm

Der Editor hat eine "Auto-Ident" Funktion (automatisches Einrücken), was den Cursor immer innerhalb des aktuell eingerückten Blocks hält und somit einfaches Bearbeiten des Sourcecodes ermöglicht.

Spezielle Feature:

Es gibt ein Menü genannt 'Compiler' und auf diesem Weg können Sie PureBasic kontrollieren. Menü-Einträge:

* Compile/Run: Kompiliert den aktuellen Sourcecode und startet das Programm.
* Debugger: Auswahl, welche den Runtime-Debugger AUS/EIN schaltet
* Optionen:
- Benutze Icon: Ein Icon wird zum erstellten Executable hinzugefügt
- NT 4.0 kompatibles Executable: ermöglicht einer Multimedia-Applikation oder einem Spiel (welches DirectX benutzt) das problemlose Laufen unter NT4. In diesem Fall wird DirectX 3 anstelle von DirectX 7 benutzt (hierzu wird das Service-Pack 3 unter NT4 benötigt).
- InlineASM Unterstützung einschalten: ermöglicht die Benutzung von ASM Schlüsselworten direkt im Sourcecode. Beachten Sie, dass eine Variable nicht denselben Namen wie ein x86 Schlüsselwort (MOV, TST, JMP etc...) haben kann
* Erstelle Executable: erstellt das endgültige Executable, einschließlich dem Icon, wenn benötigt

Andere Optionen wie Suchen, Speichern als, Ausschneiden/Kopieren/Einfügen sind klassische Optionen, wie in anderen Editoren auch...


For : Next

Syntax

For <Variable> = <Ausdruck1> To <Ausdruck2> [Step <Konstante>]
  ...
Next [<Variable>]

Beschreibung

Die 'For : Next' Funktion wird benutzt, um mitten im Programm eine Schleife mit den vorgebenen Parametern zu starten. In jeder Schleife wird die <Variable> um den Faktor 1 erhöht (oder um den <Step Wert", wenn ein Step Wert angegeben wurde). Wenn die <Variable> gleich dem <Ausdruck2> ist, endet die Schleife.

Beispiel 1 :

  For k = 0 To 10
    ...
  Next

In diesem Beispiel wird die Programmschleife 11 mal (0 bis 10) durchlaufen und dann beendet.

Beispiel 2 :

  a = 2
  b = 3
  For k = a+2 To b+7 Step 2
    ...
  Next k

Hier führt das Programm 4 Schleifendurchläufe vorm Beenden aus (k wird in jeder Schleife um den Wert 2 erhöht, so ergeben sich folgende Werte von k: 4-6-8-10). Das "k" nach dem "Next" kennzeichnet, dass "Next" die "For k" Schleife beendet. Wird eine andere Variable angegeben, quittiert dies der Compiler mit einer Fehlermeldung. Es ist nützlich, mehrere "For/Next" Ausdrücke zu verschachteln.

Beispiel 3 :

For x=0 To 320
  For y=0 To 200
    Plot(x,y)
  Next y
Next x


Allgemeine Regeln

PureBasic hat ein paar Syntax-Regeln eingeführt, welche sich niemals ändern werden. Dies sind:

- Kommentare werden gekennzeichnet mittels ; . Alle nach dem ; eingegebenen Texte werden vom Compiler ignoriert.

Beispiel :
If a = 10 ; Dies ist ein Kommentar zur näheren Erläuterung.

- Allen Funktionen muss eine ( folgen, oder sie werden nicht als Funktion erkannt, das gilt auch für parameter-lose Funktionen.

Beispiel :
WindowID() ist eine Funktion.
WindowID ist eine Variable.

- Alle Konstanten werden eingeleitet von einem #

Beispiel :
#Hello = 10 ist eine Konstante.
Hello = 10 ist eine Variable.

- Allen Sprungmarken (Labels) muss ein : folgen.

Beispiel:
Ich_bin_eine_Sprungmarke:

- Ein Ausdruck ist etwas, was berechnet werden kann. Ein Ausdruck kann beliebige Variablen, Konstanten oder Funktionen desselben Typs beinhalten. Wenn Sie Zahlen innerhalb eines Ausdrucks benutzen, können Sie das $ Zeichen vor der Zahl einfügen, um die Benutzung als Hexadezimal-Zahl anzuzeigen. Oder ein % Zeichen, um eine Binär-Zahl anzuzeigen. Ohne eines der beiden Zeichen wird die Zahl als Dezimal-Zahl behandelt. Strings müssen mit Anführungszeichen eingeschlossen werden.

Beispiele gültiger Ausdrücke :
a+1+(12*3) a+WindowHeight()+b/2+#MyConstant
a <> 12+2 b+2 >= c+3
a.s=b.s+"this is a string value"+c.s
foo + $69 / %1001; Hexadecimal and binary number usage

- Eine beliebige Anzahl an Befehlen kann auf derselben Zeile mittels der : Option aneinandergereiht werden.

Beispiel
    :
If OpenScreen(0,320,200,8,0)
    : PrintN("Ok") : Else
    : PrintN("Fehler") : EndIf

- Begriffe, die in dieser Anleitung benutzt werden :

<variable> : eine Basic Variable.
<expression> : ein Ausdruck, wie oben beschrieben.
<constant> : eine numerische Konstante.
<label> : ein Programmlabel (Sprungmarke).
<type> : jeder Typ, (Standard oder in einer Struktur).

- In dieser Anleitung sind alle Themen in alphabetischer Reihenfolge aufgeführt, um mögliche Suchzeiten zu verkürzen.


Global

Syntax:

Global <variable> [,<variable>,...]

Beschreibung:

Global erlaubt es, Variablen global zu benutzen, d.h. auf sie kann auch innerhalb einer Prozedur zugegriffen werden.

Beispiel :

Global a.l, b.b, c, d


Gosub : Return

Syntax

 Gosub MyLabel

 MyLabel:
   ...
 Return

Beschreibung

Gosub Beschreibung für 'Go to sub routine'. Nach Gosub muss eine Sprungmarke angegeben werden, dann wird die Programmausführung ab der Sprungmarke bis zum nächsten Return fortgesetzt. Wenn das Return erreicht wurde, wird die Programmausführung nach dem aufrufenden Gosub fortgesetzt. Gosub ist sehr nützlich, um schnellen strukturierten Code zu erstellen.

Beispiel :

  a = 1
  b = 2
  Gosub ComplexOperation
  PrintNumberN(a)
  End

  ComplexOperation:
    a = b*2+a*3+(a+b)
    a = a+a*a
  Return

Syntax

FakeReturn

Beschreibung

Wenn Sie aus der Sub-Routine in einen anderen Programmteil ausserhalb dieser Sub-Routine springen möchten (mit dem Befehl Goto), müssen Sie FakeReturn benutzen, um ein Return zu simulieren, ohne es wirklich auszuführen. Wenn Sie diesen Befehl nicht benutzen, wird Ihr Programm abstürzen. Diese Funktion sollte nutzlos sein, da ein ordentlich aufgebautes und strukturiertes Programm kein Goto benutzt. Aber manchmal, aus Geschwindigkeitsgründen, kann es etwas helfen.

Beispiel :

  Gosub SubRoutine1

  SubRoutine1:
    ...
    If a = 10
      FakeReturn
      Goto Main_Loop
    Endif
  Return


If : Else : EndIf

Syntax

If <Ausdruck>
  ...
[ElseIf <Ausdruck>]
  ...
[Else]
  ...
EndIf

Beschreibung

Die If Struktur wird zu Testzwecken benutzt und/oder um die Richtung der weiteren Programmausführung zu ändern, abhängig davon ob der Test wahr oder falsch ergibt. Das optionale Else wird benutzt, um einen Teil des Programm-Codes auszuführen, wenn der Test falsch ergibt. Eine beliebige Zahl von If Strukturen kann ineinander verschachtelt werden.

Beispiel 1 :

  If a=10
    PrintN("a=10")
  Else
    PrintN("a<>10")
  EndIf

Beispiel 2 :

  If a=10 And b>=10 Or c=20
    If b=15
      PrintN("b=15")
    Else
      PrintN("Andere Möglichkeit")
    EndIf
  Else
    PrintN("Test-Fehler")
  EndIf


Include Funktionen

Syntax

IncludeFile  "Dateiname"
XIncludeFile "Dateiname"

Beschreibung

IncludeFile fügt die genannte Programmdatei an der aktuellen Stelle in den Programmcode ein. XIncludeFile macht genau dasselbe, außer dass es vermeidet, dieselbe Datei mehrfach einzufügen.

Beispiel :

XInclude "Sources\myfile.pb" ; diese Datei wird eingefügt.
XInclude "Sources\myfile.pb" ; diese Datei wird ignoriert, wie auch alle späteren Aufrufe..

Syntax

IncludeBinary "Dateiname"

Beschreibung

IncludeBinary fügt die genannte Datei an der aktuellen Stelle in das Programm ein.

Beispiel :

IncludeBinary "Data\map.data"

Syntax

IncludePath "Dateipfad"

Beschreibung:

IncludePath legt den Standard-Dateipfad für alle nach diesem Befehl einzufügenden Dateien fest. Dies kann sehr nützlich sein, wenn Sie viele Dateien einfügen, die sich im selben Verzeichnis befinden.

Beispiel :

IncludePath  "Sources\Data"
IncludeFile  "Sprite.pb"
XIncludeFile "Music.pb"


Inline x86 ASM

PureBasic erlaubt das direkte Einfügen von allen x86 Assembler Befehlen (einschließlich MMX- und FPU-Befehlen) in den Sourcecode, so als wäre es ein echter Assembler. Und es bietet noch mehr: Sie können direkt alle Variablen oder Zeiger in den Assembler Schlüsselwörtern benutzen, Sie können beliebige Assembler Befehle auf derselben Zeile verwenden, ... Der Syntax entspricht dem des NAsm, wenn Sie also nach weiteren Informationen zum ASM Syntax suchen, lesen Sie einfach die NAsm Anleitung.

Sie müssen einige Regeln genau beachten, wenn Sie ASM im Basic Code einbinden möchten:

- Die benutzten Variablen oder Zeiger müssen vor ihrer Benutzung in einem Assembler Schlüsselwort deklariert werden.
- Wenn Sie auf eine Sprungmarke verweisen, müssen Sie das Zeichen 'p' vor dem Namen einfügen. Dies erfolgt, weil PureBasic ein 'p' vor einer BASIC Sprungmarke einfügt, um Konflikte mit internen Sprungmarken zu vermeiden.

Beispiel :

MOV ebx,pMyLabel
...
MyLabel:

- Die Fehler in einem ASM Programmteil werden nicht von PureBasic gemeldet, jedoch von NAsm. Überprüfen Sie einfach Ihren Programmcode, wenn ein solcher Fehler auftritt.
- Die verwendbaren Register sind: eax, ebx, edx, esi, edi und ebp. Alle anderen müssen immer reserviert bleiben.

Beispiel :

Inline ASM Beispiel


Pointers and Memory access

Pointer (Zeiger)

Um einen Pointer (Zeiger) zu benutzen, schreiben Sie einen * vor den Variablen-Namen. Ein Zeiger ist eine Long-Variable, welche eine Adresse speichert. Er wird generell in Verbindung mit dem Struktur-Typ benutzt. Mit dem Zeiger erhalten Sie Zugriff auf die Struktur.

Beispiel :
*MyScreen.Screen = OpenScreen(0,320,200,8,0)
mouseX = *MyScreen\MouseX ; setzt voraus, dass die Screen Struktur ein MouseX Feld beinhaltet

Es gibt nur drei gültige Methoden, den Wert eines Zeigers zu setzen:
* Erhalt als Ergebnis einer Funktion (wie im obigen Beispiel gezeigt)
* Kopieren des Werts von einem anderen Zeiger
* Ermitteln der Adresse einer Variable, einer Prozedur oder einer Sprungmarke (siehe weiter unten)

Adressen von Variablen

Um die Adresse einer Variable in Ihrem Programmcode zu ermitteln, benutzen Sie das 'at' Symbol (@). Ein üblicher Grund für die Benutzung dieser Methode ist, wenn Sie die Variable eines Struktur-Typs an eine Prozedur übergeben wollen. Sie müssen einen Zeiger auf diese Variable übergeben, da Sie strukturierte Variablen nicht direkt übergeben können.

Beispiel :

Structure astruct
  a.w
  b.l
  c.w
EndStructure

Procedure SetB(*myptr.astruct)
  *myptr\b = 69
EndProcedure

If OpenConsole()
  DefType.astruct myvar
  myvar\b = 0
  SetB( @myvar )
  PrintN(Str(myvar\b))
  Input()
  CloseConsole()
EndIf
End

Adressen von Prozeduren

Normalerweise sind nur fortgeschrittene Programmierer darauf angewiesen, die Adresse einer Prozedur zu ermitteln. Wahrscheinlich ist die häufigste Ursache für das Ermitteln einer Adresse, wenn auf "low-level" Ebene mit dem OS gearbeitet werden soll. Einige OS erlauben "Callback"- oder "Hook"-Funktionen (für einige Operationen) zu definieren, welche durch das OS aufgerufen werden und dem Programmierer den Ausbau der Fähigkeiten der betreffenden OS-Routine ermöglichen. Die Adresse einer Prozedur wird auf ähnliche Art und Weise wie bei Variablen ermittelt.

Beispiel :

Procedure WindowCB(WindowID.l, Message.l, wParam.l, lParam.l)
  ; Hier wird Ihre Callback Prozedur abgearbeitet.
EndProcedure

; Ein spezielles Callback für Windows OS ermöglicht die Verarbeitung von Window-Ereignissen.
SetWindowCallback( @WindowCB() )

Adressen von Sprungmarken (Labels)

Es kann auch nützlich sein, die Adresse einer Sprungmarke innerhalb Ihres Programmcodes zu ermitteln. Dies ist möglich, wenn Sie Zugriff auf an dieser Sprungmarke gespeicherten Code oder Daten erhalten möchten. Oder jede andere gute Möglichkeit, die Sie sich vorstellen können. Um die Adresse einer Sprungmarke zu ermitteln, schreiben Sie ein Fragezeichen (?) vor den Namen der Sprungmarke.

Beispiel :

If OpenConsole()
  PrintN("Größe der Daten = " + Str(?endofmydata - ?mydata))
  Input()
  CloseConsole()
EndIf
End

mydata:
IncludeBinary "somefile.bin"
endofmydata:


NewList

Syntax

NewList name.<type>()

Beschreibung

NewList ermöglicht die Einrichtung einer dynamisch verknüpften Liste (dynamic linked list). Jedes Element einer Liste wird dynamisch zugewiesen. Es gibt keine Einschränkungen in der Anzahl der Elemente, es können so viele wie nötig benutzt werden. Eine Liste kann jeden Standard- oder Struktur-Typ haben. Um eine Liste aller Befehle für das Verwalten von Listen zu erhalten, klicken Sie hier.

Beispiel :

NewList mylist.l()
AddElement(mylist())
mylist() = 10


Andere Befehle

Eine Liste weiterer Befehle:

Goto :

Goto <label>

Dieser Befehl wird benutzt, um die Programmausführung direkt zu einer Sprungmarke zu verlegen. Seien Sie vorsichtig mit dieser Funktion, da falsche Benutzung zu einem Programmabsturz führen kann...


Prozeduren

Syntax

Procedure[.<type>] name(<variable1>[,<variable2>,...])
  ...
  [ProcedureReturn value]
EndProcedure

Beschreibung

Eine Procedure ist ein Programmteil, welcher unabhängig vom Hauptcode innerhalb des Programms ist und seine eigenen Parameter und Variablen haben kann. In PureBasic wird bei Prozeduren die Rekursion voll unterstützt, jede Prozedur kann sich auch selbst aufrufen. Um auf Variablen des Hauptprogramms zugreifen zu können, müssen diese mit der Prozedur "geteilt" (shared) werden. Dies ist mit den Shared oder Global Schlüsselworten möglich. Eine Prozedur kann wenn nötig ein Ergebnis zurückliefern. Sie müssen in diesem Fall nach 'Procedure' den Typ (.type) festlegen und das ProcedureReturn Schlüsselwort an einem beliebigen Punkt innerhalb der Prozedur aufrufen.

Beispiel :

Procedure.l Maximum(nb1.l, nb2.l)
  If nb1>nb2
    Result.l = nb1
  Else
    Result = nb2
  Endif

  ProcedureReturn Result
EndProcedure

Result.l = Maximum(15,30)
PrintNumberN(Result)
End


PureBasic Referenz-Handbuch

Allgemeine Themen

Benutzung des integrierten Editors
Benutzung des SHELL-Compilers
Allgemeine Syntax Regeln
Variablen und Typen

Basic Schlüsselwörter

For : Next
Gosub : Return
If : Else : EndIf
Repeat : Until
Select : EndSelect
While: Wend
Andere

Strukturen-Optionen

DefType
Dim
NewList
Structure : EndStructure

Prozeduren Unterstützung

Global
Procedure : EndProcedure
Shared

Verschiedene Themen:

Zeiger und Speicherzugriff
Data
 Debugger
 'Include' Funktionen
 Compiler Direktiven
 Inlined x86 ASM

Eingebaute Libraries

2D Drawing
CDAudio
Clipboard
Console
Database
File
FileSystem
Font
Gadget
Help
Image
Joystick
Keyboard
Library
Linked List
Math
Misc
Memory
Menu
Module
Mouse
Movie
Network
Packer
Palette
Preference
Printer
Requester
Sort
Sound
Sprite & Screen
Sprite3D
StatusBar
String
SysTray
Thread
Toolbar
Window

Eingebauter Befehlsindex

Befehls-Index


Repeat : Until

Syntax

Repeat
  ...
Until <Ausdruck> [oder Forever]

Beschreibung

Diese Funktion durchläuft eine Schleife bis der <Ausdruck> wahr ergibt. Eine beliebige Zahl an Schleifendurchläufen ist möglich. Wird eine endlose Schleife benötigt, dann benutzen Sie das Forever Schlüsselwort anstelle von Until.

Beispiel :

  a=0
  Repeat
    a=a+1
  Until a>100

Diese Schleife wird solange ausgeführt, bis "a" einen Wert > 100 ergibt. (Die Schleife wird 101 mal durchlaufen).


Select : EndSelect

Syntax

Select <Ausdruck1>
  Case <Ausdruck2>
     ...
  [Case <Ausdruck3>]
     ...
  [Default]
     ...
EndSelect

Beschreibung

Select erlaubt eine schnelle Auswahl. Das Programm führt den <Ausdruck1> aus und behält dessen Ergebnis im Speicher. Dieses wird mit allen Werten aus den "Case <Ausdrücken>" verglichen, und wenn dieser Vergleich wahr ergibt, wird der zugehörige Programmcode ausgeführt und die Select Struktur beendet. Wenn keiner der Case Werte wahr ist, dann wird der Default Code (sofern definiert) ausgeführt.

Beispiel :

  a = 2
  Select a
    Case 1
      PrintN("Case a = 1")
    Case 2
      PrintN("Case a = 2")
    Case 20
      PrintN("Case a = 20")
    Default
      PrintN("I don't know")
  EndSelect

Syntax

FakeEndSelect

Beschreibung

Wenn Sie aus einem Select-Abschnitt zu einem anderen Programmteil außerhalb des Select springen möchten (mit dem Befehl Goto), müssen Sie FakeEndSelect benutzen, welches ein EndSelect simuliert, ohne es wirklich auszuführen. Wenn Sie es nicht benutzen, wird Ihr Programm abstürzen.

Beispiel :

  Main_Loop:
    ...
    Select a
      Case 10
        ...
      Case 20
        FakeEndSelect
        Goto Main_Loop
    EndSelect


Shared

Syntax

Shared <variable> [,<variable>,...]

Beschreibung

Shared erlaubt den Zugriff auf eine Variable innerhalb der Prozedur.

Beispiel :

a.l = 10

Procedure Change()
  Shared a
  a = 20
EndProcedure

Change()
PrintN(a) ; wird 20 ausgeben, da die Variable "geteilt" (shared) wurde.
End


Strukturen

Syntax

Structure <name>
  ...
EndStructure

Beschreibung

Structure ist nützlich, um Benutzertypen zu definieren und um Zugriff auf einige Speicherbereiche des OS zu erhalten. Strukturen können für das schnellere und einfachere Verwalten von großen Datenbeständen benutzt werden. Es kann nützlich sein, in einem Objekt alle zusammengehörenden Informationen gruppieren zu können. Strukturen werden mit der \ Option aufgerufen. Sie können auch verschachtelt werden. Statische Arrays werden innerhalb von Strukturen unterstützt.

Beispiel 1 :

Structure Person
  Name.s
  ForName.s
  Age.w
EndStructure

Dim MyFriends.Person(100)

; Hier wird die Position '0' des Arrays MyFriend()
; eine Person und deren Informationen enthalten.

MyFriends(0)\Name = "Andersson"
MyFriends(0)\Forname = "Richard"
MyFriends(0)\Age = 32

Beispiel 2 : Eine komplexere Struktur (verschachtelt und statisches Array)

Structure Window
  *NextWindow.Window  ; verweist auf ein anderes Window Objekt
  x.w
  y.w
  Name.s[10]  ; 10 Namen verfügbar
EndStructure

Syntax

StructureUnion
  Field1.Type
  Field2.Type
  ...
EndStructureUnion

Beschreibung

StructureUnion sind nur nützlich für fortgeschrittene Programmierer, welche etwas Speicher sparen wollen, indem sie einige Felder innerhalb derselben Struktur teilen. Sie funktionieren wie das 'Union' Schlüsselwort in C/C++.

Beispiel :

Structure Type
  Name$
  StructureUnion
    Long.l      ; Jedes Feld (Long, Float und String) befinden sich
    Float.f     ; an derselben Stelle im Speicher.
    String.s    ;
  StructureUnion
EndStructure


Variablen und Typen

Variablen Definition

Um eine Variable in PureBasic zu definieren, geben Sie ihren Namen ein oder den Typ den die Variable annehmen soll. Variablen müssen nicht ausdrücklich deklariert werden, sie können auch als Variablen "on-the-fly" benutzt werden. Das 'DefType' Schlüsselwort kann benutzt werden, um eine ganze Reihe von Variablen zu definieren.

Beispiel :
a.b ; Deklariert eine Variable genannt 'a' vom Typ Byte (.b).
c.l = a*d.w ; 'd' wird hier mitten im Ausdruck deklariert !

Um einen Zeiger (englisch: Pointer) zu benutzen, geben Sie einen * vor dem Variablennamen ein. Ein Zeiger ist eine Long-Variable, welche eine (Speicher-) Adresse speichert. Sie werden generell in Verbindung mit Strukturen benutzt. Auf die Struktur wird mit Hilfe des Zeigers zugegriffen.

Beispiel:
*MyScreen.Screen = OpenScreen(0,320,200,8,0)
mouseX = *MyScreen\MouseX ; Setzt voraus, dass die 'Screen' Struktur ein 'MouseX' Feld beinhaltet

Basic Typen

PureBasic erlaubt Variablen-Typen. Diese Typen sind vorzeichenbehaftet und können standardmäßig Ganzzahlen (integers), Fließkommazahlen (float numbers) oder einfach String-Zeichen sein. Hier folgt eine Liste der unterstützten Typen und eine Kurzbeschreibung:

Name
Erweiterung
Speicherverbrauch
Bereich
Byte | .b | 1 Byte im Speicher | -128 bis +127
Word | .w | 2 Byte im Speicher | -32768 bis +32767
Long | .l | 4 Byte im Speicher | -2147483648 bis +2147483647
Float | .f | 4 Byte im Speicher | unlimitiert
String | .s | Länge des Strings + 1 | unlimitiert

Strukturierte Typen

Erstellt strukturierte Typen, mittels der 'Struktur' Option. Weitere Informationen finden Sie im Kapitel 'Strukturen'.


While : Wend

Syntax

While <Ausdruck>
  ...
Wend

Beschreibung

Eine Wend Schleife wird solange durchlaufen, bis der <Ausdruck> falsch ergibt. Ein wichtiger Punkt, um eine Vorstellung von einer "While" Schleife zu bekommen: Ergibt der erste Test falsch, dann gelangt die Programmausführung niemals zum Programmcode innerhalb der Schleife und überspringt diesen Teil. Eine "Repeat" Schleife wird dagegen mindestens einmal ausgeführt (da der Test erst nach jeder Schleife durchgeführt wird).

Beispiel :

  b = 0
  a = 10
  While a = 10
    b = b+1
    If b=10
      a=11
    Endif
  Wend

Diese Programmschleife wird so oft ausgeführt, bis der Wert 'a' <> 10 ist. Dies ändert sich, wenn b=10 ist; die Schleife wird insgesamt 10 mal ausgeführt.